Bug 1068653 - Part 1 Add python dependencies for taskcluster mach commands r=gps
authorJames Lal <james@lightsofapollo.com>
Wed, 26 Nov 2014 10:11:28 -0800
changeset 225714 5edda558c6555e518d3579f89854b556c453c66a
parent 225713 e63a703bff4dc370241bba2744e97f6d4fc32a47
child 225715 f6a7135ba01290e9b982b14ac5238d3b340567c8
push id10999
push userryanvm@gmail.com
push dateMon, 26 Jan 2015 21:53:06 +0000
treeherderfx-team@4f669be8049b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersgps
bugs1068653
milestone38.0a1
Bug 1068653 - Part 1 Add python dependencies for taskcluster mach commands r=gps
python/README
python/pystache/.gitignore
python/pystache/.gitmodules
python/pystache/.travis.yml
python/pystache/HISTORY.md
python/pystache/LICENSE
python/pystache/MANIFEST.in
python/pystache/README.md
python/pystache/TODO.md
python/pystache/gh/images/logo_phillips.png
python/pystache/pystache/__init__.py
python/pystache/pystache/commands/__init__.py
python/pystache/pystache/commands/render.py
python/pystache/pystache/commands/test.py
python/pystache/pystache/common.py
python/pystache/pystache/context.py
python/pystache/pystache/defaults.py
python/pystache/pystache/init.py
python/pystache/pystache/loader.py
python/pystache/pystache/locator.py
python/pystache/pystache/parsed.py
python/pystache/pystache/parser.py
python/pystache/pystache/renderengine.py
python/pystache/pystache/renderer.py
python/pystache/pystache/specloader.py
python/pystache/pystache/template_spec.py
python/pystache/setup.py
python/pystache/setup_description.rst
python/pystache/test_pystache.py
python/pystache/tox.ini
python/pyyaml/CHANGES
python/pyyaml/LICENSE
python/pyyaml/PKG-INFO
python/pyyaml/README
python/pyyaml/examples/pygments-lexer/example.yaml
python/pyyaml/examples/pygments-lexer/yaml.py
python/pyyaml/examples/yaml-highlight/yaml_hl.cfg
python/pyyaml/examples/yaml-highlight/yaml_hl.py
python/pyyaml/ext/_yaml.c
python/pyyaml/ext/_yaml.h
python/pyyaml/ext/_yaml.pxd
python/pyyaml/ext/_yaml.pyx
python/pyyaml/lib/yaml/__init__.py
python/pyyaml/lib/yaml/composer.py
python/pyyaml/lib/yaml/constructor.py
python/pyyaml/lib/yaml/cyaml.py
python/pyyaml/lib/yaml/dumper.py
python/pyyaml/lib/yaml/emitter.py
python/pyyaml/lib/yaml/error.py
python/pyyaml/lib/yaml/events.py
python/pyyaml/lib/yaml/loader.py
python/pyyaml/lib/yaml/nodes.py
python/pyyaml/lib/yaml/parser.py
python/pyyaml/lib/yaml/reader.py
python/pyyaml/lib/yaml/representer.py
python/pyyaml/lib/yaml/resolver.py
python/pyyaml/lib/yaml/scanner.py
python/pyyaml/lib/yaml/serializer.py
python/pyyaml/lib/yaml/tokens.py
python/pyyaml/lib3/yaml/__init__.py
python/pyyaml/lib3/yaml/composer.py
python/pyyaml/lib3/yaml/constructor.py
python/pyyaml/lib3/yaml/cyaml.py
python/pyyaml/lib3/yaml/dumper.py
python/pyyaml/lib3/yaml/emitter.py
python/pyyaml/lib3/yaml/error.py
python/pyyaml/lib3/yaml/events.py
python/pyyaml/lib3/yaml/loader.py
python/pyyaml/lib3/yaml/nodes.py
python/pyyaml/lib3/yaml/parser.py
python/pyyaml/lib3/yaml/reader.py
python/pyyaml/lib3/yaml/representer.py
python/pyyaml/lib3/yaml/resolver.py
python/pyyaml/lib3/yaml/scanner.py
python/pyyaml/lib3/yaml/serializer.py
python/pyyaml/lib3/yaml/tokens.py
python/pyyaml/setup.cfg
python/pyyaml/setup.py
--- a/python/README
+++ b/python/README
@@ -7,8 +7,15 @@ go here.
 What should not go here:
 
 * Python that is not MPL-compatible (see other-licenses/)
 * Python that has good reason to remain close to its "owning" (Mozilla)
   module (e.g. it is only being consumed from there).
 
 Historical information can be found at
 https://bugzilla.mozilla.org/show_bug.cgi?id=775243
+
+## pyyaml | pystache
+
+Used in taskcluster related mach commands to update download from github
+and remove .git and tests.
+
+Then run tests in taskcluster/tests/
new file mode 100644
--- /dev/null
+++ b/python/pystache/.gitignore
@@ -0,0 +1,17 @@
+*.pyc
+.DS_Store
+# Tox support.  See: http://pypi.python.org/pypi/tox
+.tox
+# Our tox runs convert the doctests in *.rst files to Python 3 prior to
+# running tests.  Ignore these temporary files.
+*.temp2to3.rst
+# The setup.py "prep" command converts *.md to *.temp.rst (via *.temp.md).
+*.temp.md
+*.temp.rst
+# TextMate project file
+*.tmproj
+# Distribution-related folders and files.
+build
+dist
+MANIFEST
+pystache.egg-info
new file mode 100644
--- /dev/null
+++ b/python/pystache/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "ext/spec"]
+	path = ext/spec
+	url = http://github.com/mustache/spec.git
new file mode 100644
--- /dev/null
+++ b/python/pystache/.travis.yml
@@ -0,0 +1,14 @@
+language: python
+
+# Travis CI has no plans to support Jython and no longer supports Python 2.5.
+python:
+  - 2.6
+  - 2.7
+  - 3.2
+  - pypy
+
+script:
+  - python setup.py install
+  # Include the spec tests directory for Mustache spec tests and the
+  # project directory for doctests.
+  - pystache-test . ext/spec/specs
new file mode 100644
--- /dev/null
+++ b/python/pystache/HISTORY.md
@@ -0,0 +1,169 @@
+History
+=======
+
+**Note:** Official support for Python 2.4 will end with Pystache version 0.6.0.
+
+0.5.4 (2014-07-11)
+------------------
+
+-   Bugfix: made test with filenames OS agnostic (issue \#162).
+
+0.5.3 (2012-11-03)
+------------------
+
+-   Added ability to customize string coercion (e.g. to have None render as
+    `''`) (issue \#130).
+-   Added Renderer.render_name() to render a template by name (issue \#122).
+-   Added TemplateSpec.template_path to specify an absolute path to a
+    template (issue \#41).
+-   Added option of raising errors on missing tags/partials:
+    `Renderer(missing_tags='strict')` (issue \#110).
+-   Added support for finding and loading templates by file name in
+    addition to by template name (issue \#127). [xgecko]
+-   Added a `parse()` function that yields a printable, pre-compiled
+    parse tree.
+-   Added support for rendering pre-compiled templates.
+-   Added Python 3.3 to the list of supported versions.
+-   Added support for [PyPy](http://pypy.org/) (issue \#125).
+-   Added support for [Travis CI](http://travis-ci.org) (issue \#124).
+    [msabramo]
+-   Bugfix: `defaults.DELIMITERS` can now be changed at runtime (issue \#135).
+    [bennoleslie]
+-   Bugfix: exceptions raised from a property are no longer swallowed
+    when getting a key from a context stack (issue \#110).
+-   Bugfix: lambda section values can now return non-ascii, non-unicode
+    strings (issue \#118).
+-   Bugfix: allow `test_pystache.py` and `tox` to pass when run from a
+    downloaded sdist (i.e. without the spec test directory).
+-   Convert HISTORY and README files from reST to Markdown.
+-   More robust handling of byte strings in Python 3.
+-   Added Creative Commons license for David Phillips's logo.
+
+0.5.2 (2012-05-03)
+------------------
+
+-   Added support for dot notation and version 1.1.2 of the spec (issue
+    \#99). [rbp]
+-   Missing partials now render as empty string per latest version of
+    spec (issue \#115).
+-   Bugfix: falsey values now coerced to strings using str().
+-   Bugfix: lambda return values for sections no longer pushed onto
+    context stack (issue \#113).
+-   Bugfix: lists of lambdas for sections were not rendered (issue
+    \#114).
+
+0.5.1 (2012-04-24)
+------------------
+
+-   Added support for Python 3.1 and 3.2.
+-   Added tox support to test multiple Python versions.
+-   Added test script entry point: pystache-test.
+-   Added \_\_version\_\_ package attribute.
+-   Test harness now supports both YAML and JSON forms of Mustache spec.
+-   Test harness no longer requires nose.
+
+0.5.0 (2012-04-03)
+------------------
+
+This version represents a major rewrite and refactoring of the code base
+that also adds features and fixes many bugs. All functionality and
+nearly all unit tests have been preserved. However, some backwards
+incompatible changes to the API have been made.
+
+Below is a selection of some of the changes (not exhaustive).
+
+Highlights:
+
+-   Pystache now passes all tests in version 1.0.3 of the [Mustache
+    spec](https://github.com/mustache/spec). [pvande]
+-   Removed View class: it is no longer necessary to subclass from View
+    or from any other class to create a view.
+-   Replaced Template with Renderer class: template rendering behavior
+    can be modified via the Renderer constructor or by setting
+    attributes on a Renderer instance.
+-   Added TemplateSpec class: template rendering can be specified on a
+    per-view basis by subclassing from TemplateSpec.
+-   Introduced separation of concerns and removed circular dependencies
+    (e.g. between Template and View classes, cf. [issue
+    \#13](https://github.com/defunkt/pystache/issues/13)).
+-   Unicode now used consistently throughout the rendering process.
+-   Expanded test coverage: nosetests now runs doctests and \~105 test
+    cases from the Mustache spec (increasing the number of tests from 56
+    to \~315).
+-   Added a rudimentary benchmarking script to gauge performance while
+    refactoring.
+-   Extensive documentation added (e.g. docstrings).
+
+Other changes:
+
+-   Added a command-line interface. [vrde]
+-   The main rendering class now accepts a custom partial loader (e.g. a
+    dictionary) and a custom escape function.
+-   Non-ascii characters in str strings are now supported while
+    rendering.
+-   Added string encoding, file encoding, and errors options for
+    decoding to unicode.
+-   Removed the output encoding option.
+-   Removed the use of markupsafe.
+
+Bug fixes:
+
+-   Context values no longer processed as template strings.
+    [jakearchibald]
+-   Whitespace surrounding sections is no longer altered, per the spec.
+    [heliodor]
+-   Zeroes now render correctly when using PyPy. [alex]
+-   Multline comments now permitted. [fczuardi]
+-   Extensionless template files are now supported.
+-   Passing `**kwargs` to `Template()` no longer modifies the context.
+-   Passing `**kwargs` to `Template()` with no context no longer raises
+    an exception.
+
+0.4.1 (2012-03-25)
+------------------
+
+-   Added support for Python 2.4. [wangtz, jvantuyl]
+
+0.4.0 (2011-01-12)
+------------------
+
+-   Add support for nested contexts (within template and view)
+-   Add support for inverted lists
+-   Decoupled template loading
+
+0.3.1 (2010-05-07)
+------------------
+
+-   Fix package
+
+0.3.0 (2010-05-03)
+------------------
+
+-   View.template\_path can now hold a list of path
+-   Add {{& blah}} as an alias for {{{ blah }}}
+-   Higher Order Sections
+-   Inverted sections
+
+0.2.0 (2010-02-15)
+------------------
+
+-   Bugfix: Methods returning False or None are not rendered
+-   Bugfix: Don't render an empty string when a tag's value is 0.
+    [enaeseth]
+-   Add support for using non-callables as View attributes.
+    [joshthecoder]
+-   Allow using View instances as attributes. [joshthecoder]
+-   Support for Unicode and non-ASCII-encoded bytestring output.
+    [enaeseth]
+-   Template file encoding awareness. [enaeseth]
+
+0.1.1 (2009-11-13)
+------------------
+
+-   Ensure we're dealing with strings, always
+-   Tests can be run by executing the test file directly
+
+0.1.0 (2009-11-12)
+------------------
+
+-   First release
new file mode 100644
--- /dev/null
+++ b/python/pystache/LICENSE
@@ -0,0 +1,22 @@
+Copyright (C) 2012 Chris Jerdonek.  All rights reserved.
+
+Copyright (c) 2009 Chris Wanstrath
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
new file mode 100644
--- /dev/null
+++ b/python/pystache/MANIFEST.in
@@ -0,0 +1,13 @@
+include README.md
+include HISTORY.md
+include LICENSE
+include TODO.md
+include setup_description.rst
+include tox.ini
+include test_pystache.py
+# You cannot use package_data, for example, to include data files in a
+# source distribution when using Distribute.
+recursive-include pystache/tests *.mustache *.txt
+# We deliberately exclude the gh/ directory because it contains copies
+# of resources needed only for the web page hosted on GitHub (via the
+# gh-pages branch).
new file mode 100644
--- /dev/null
+++ b/python/pystache/README.md
@@ -0,0 +1,276 @@
+Pystache
+========
+
+<!-- Since PyPI rejects reST long descriptions that contain HTML, -->
+<!-- HTML comments must be removed when converting this file to reST. -->
+<!-- For more information on PyPI's behavior in this regard, see: -->
+<!-- http://docs.python.org/distutils/uploading.html#pypi-package-display -->
+<!-- The Pystache setup script strips 1-line HTML comments prior -->
+<!-- to converting to reST, so all HTML comments should be one line. -->
+<!-- -->
+<!-- We leave the leading brackets empty here.  Otherwise, unwanted -->
+<!-- caption text shows up in the reST version converted by pandoc. -->
+![](http://defunkt.github.com/pystache/images/logo_phillips.png "mustachioed, monocled snake by David Phillips")
+
+![](https://secure.travis-ci.org/defunkt/pystache.png "Travis CI current build status")
+
+[Pystache](http://defunkt.github.com/pystache) is a Python
+implementation of [Mustache](http://mustache.github.com/). Mustache is a
+framework-agnostic, logic-free templating system inspired by
+[ctemplate](http://code.google.com/p/google-ctemplate/) and
+[et](http://www.ivan.fomichev.name/2008/05/erlang-template-engine-prototype.html).
+Like ctemplate, Mustache "emphasizes separating logic from presentation:
+it is impossible to embed application logic in this template language."
+
+The [mustache(5)](http://mustache.github.com/mustache.5.html) man page
+provides a good introduction to Mustache's syntax. For a more complete
+(and more current) description of Mustache's behavior, see the official
+[Mustache spec](https://github.com/mustache/spec).
+
+Pystache is [semantically versioned](http://semver.org) and can be found
+on [PyPI](http://pypi.python.org/pypi/pystache). This version of
+Pystache passes all tests in [version
+1.1.2](https://github.com/mustache/spec/tree/v1.1.2) of the spec.
+
+
+Requirements
+------------
+
+Pystache is tested with--
+
+-   Python 2.4 (requires simplejson [version
+    2.0.9](http://pypi.python.org/pypi/simplejson/2.0.9) or earlier)
+-   Python 2.5 (requires
+    [simplejson](http://pypi.python.org/pypi/simplejson/))
+-   Python 2.6
+-   Python 2.7
+-   Python 3.1
+-   Python 3.2
+-   Python 3.3
+-   [PyPy](http://pypy.org/)
+
+[Distribute](http://packages.python.org/distribute/) (the setuptools fork)
+is recommended over [setuptools](http://pypi.python.org/pypi/setuptools),
+and is required in some cases (e.g. for Python 3 support).
+If you use [pip](http://www.pip-installer.org/), you probably already satisfy
+this requirement.
+
+JSON support is needed only for the command-line interface and to run
+the spec tests. We require simplejson for earlier versions of Python
+since Python's [json](http://docs.python.org/library/json.html) module
+was added in Python 2.6.
+
+For Python 2.4 we require an earlier version of simplejson since
+simplejson stopped officially supporting Python 2.4 in simplejson
+version 2.1.0. Earlier versions of simplejson can be installed manually,
+as follows:
+
+    pip install 'simplejson<2.1.0'
+
+Official support for Python 2.4 will end with Pystache version 0.6.0.
+
+Install It
+----------
+
+    pip install pystache
+
+And test it--
+
+    pystache-test
+
+To install and test from source (e.g. from GitHub), see the Develop
+section.
+
+Use It
+------
+
+    >>> import pystache
+    >>> print pystache.render('Hi {{person}}!', {'person': 'Mom'})
+    Hi Mom!
+
+You can also create dedicated view classes to hold your view logic.
+
+Here's your view class (in .../examples/readme.py):
+
+    class SayHello(object):
+        def to(self):
+            return "Pizza"
+
+Instantiating like so:
+
+    >>> from pystache.tests.examples.readme import SayHello
+    >>> hello = SayHello()
+
+Then your template, say\_hello.mustache (by default in the same
+directory as your class definition):
+
+    Hello, {{to}}!
+
+Pull it together:
+
+    >>> renderer = pystache.Renderer()
+    >>> print renderer.render(hello)
+    Hello, Pizza!
+
+For greater control over rendering (e.g. to specify a custom template
+directory), use the `Renderer` class like above. One can pass attributes
+to the Renderer class constructor or set them on a Renderer instance. To
+customize template loading on a per-view basis, subclass `TemplateSpec`.
+See the docstrings of the
+[Renderer](https://github.com/defunkt/pystache/blob/master/pystache/renderer.py)
+class and
+[TemplateSpec](https://github.com/defunkt/pystache/blob/master/pystache/template_spec.py)
+class for more information.
+
+You can also pre-parse a template:
+
+    >>> parsed = pystache.parse(u"Hey {{#who}}{{.}}!{{/who}}")
+    >>> print parsed
+    [u'Hey ', _SectionNode(key=u'who', index_begin=12, index_end=18, parsed=[_EscapeNode(key=u'.'), u'!'])]
+
+And then:
+
+    >>> print renderer.render(parsed, {'who': 'Pops'})
+    Hey Pops!
+    >>> print renderer.render(parsed, {'who': 'you'})
+    Hey you!
+
+Python 3
+--------
+
+Pystache has supported Python 3 since version 0.5.1. Pystache behaves
+slightly differently between Python 2 and 3, as follows:
+
+-   In Python 2, the default html-escape function `cgi.escape()` does
+    not escape single quotes.  In Python 3, the default escape function
+    `html.escape()` does escape single quotes.
+-   In both Python 2 and 3, the string and file encodings default to
+    `sys.getdefaultencoding()`. However, this function can return
+    different values under Python 2 and 3, even when run from the same
+    system. Check your own system for the behavior on your system, or do
+    not rely on the defaults by passing in the encodings explicitly
+    (e.g. to the `Renderer` class).
+
+Unicode
+-------
+
+This section describes how Pystache handles unicode, strings, and
+encodings.
+
+Internally, Pystache uses [only unicode
+strings](http://docs.python.org/howto/unicode.html#tips-for-writing-unicode-aware-programs)
+(`str` in Python 3 and `unicode` in Python 2). For input, Pystache
+accepts both unicode strings and byte strings (`bytes` in Python 3 and
+`str` in Python 2). For output, Pystache's template rendering methods
+return only unicode.
+
+Pystache's `Renderer` class supports a number of attributes to control
+how Pystache converts byte strings to unicode on input. These include
+the `file_encoding`, `string_encoding`, and `decode_errors` attributes.
+
+The `file_encoding` attribute is the encoding the renderer uses to
+convert to unicode any files read from the file system. Similarly,
+`string_encoding` is the encoding the renderer uses to convert any other
+byte strings encountered during the rendering process into unicode (e.g.
+context values that are encoded byte strings).
+
+The `decode_errors` attribute is what the renderer passes as the
+`errors` argument to Python's built-in unicode-decoding function
+(`str()` in Python 3 and `unicode()` in Python 2). The valid values for
+this argument are `strict`, `ignore`, and `replace`.
+
+Each of these attributes can be set via the `Renderer` class's
+constructor using a keyword argument of the same name. See the Renderer
+class's docstrings for further details. In addition, the `file_encoding`
+attribute can be controlled on a per-view basis by subclassing the
+`TemplateSpec` class. When not specified explicitly, these attributes
+default to values set in Pystache's `defaults` module.
+
+Develop
+-------
+
+To test from a source distribution (without installing)--
+
+    python test_pystache.py
+
+To test Pystache with multiple versions of Python (with a single
+command!), you can use [tox](http://pypi.python.org/pypi/tox):
+
+    pip install 'virtualenv<1.8'  # Version 1.8 dropped support for Python 2.4.
+    pip install 'tox<1.4'  # Version 1.4 dropped support for Python 2.4.
+    tox
+
+If you do not have all Python versions listed in `tox.ini`--
+
+    tox -e py26,py32  # for example
+
+The source distribution tests also include doctests and tests from the
+Mustache spec. To include tests from the Mustache spec in your test
+runs:
+
+    git submodule init
+    git submodule update
+
+The test harness parses the spec's (more human-readable) yaml files if
+[PyYAML](http://pypi.python.org/pypi/PyYAML) is present. Otherwise, it
+parses the json files. To install PyYAML--
+
+    pip install pyyaml
+
+To run a subset of the tests, you can use
+[nose](http://somethingaboutorange.com/mrl/projects/nose/0.11.1/testing.html):
+
+    pip install nose
+    nosetests --tests pystache/tests/test_context.py:GetValueTests.test_dictionary__key_present
+
+### Using Python 3 with Pystache from source
+
+Pystache is written in Python 2 and must be converted to Python 3 prior to
+using it with Python 3.  The installation process (and tox) do this
+automatically.
+
+To convert the code to Python 3 manually (while using Python 3)--
+
+    python setup.py build
+
+This writes the converted code to a subdirectory called `build`.
+By design, Python 3 builds
+[cannot](https://bitbucket.org/tarek/distribute/issue/292/allow-use_2to3-with-python-2)
+be created from Python 2.
+
+To convert the code without using setup.py, you can use
+[2to3](http://docs.python.org/library/2to3.html) as follows (two steps)--
+
+    2to3 --write --nobackups --no-diffs --doctests_only pystache
+    2to3 --write --nobackups --no-diffs pystache
+
+This converts the code (and doctests) in place.
+
+To `import pystache` from a source distribution while using Python 3, be
+sure that you are importing from a directory containing a converted
+version of the code (e.g. from the `build` directory after converting),
+and not from the original (unconverted) source directory.  Otherwise, you will
+get a syntax error.  You can help prevent this by not running the Python
+IDE from the project directory when importing Pystache while using Python 3.
+
+
+Mailing List
+------------
+
+There is a [mailing list](http://librelist.com/browser/pystache/). Note
+that there is a bit of a delay between posting a message and seeing it
+appear in the mailing list archive.
+
+Credits
+-------
+
+    >>> context = { 'author': 'Chris Wanstrath', 'maintainer': 'Chris Jerdonek' }
+    >>> print pystache.render("Author: {{author}}\nMaintainer: {{maintainer}}", context)
+    Author: Chris Wanstrath
+    Maintainer: Chris Jerdonek
+
+Pystache logo by [David Phillips](http://davidphillips.us/) is licensed
+under a [Creative Commons Attribution-ShareAlike 3.0 Unported
+License](http://creativecommons.org/licenses/by-sa/3.0/deed.en_US).
+![](http://i.creativecommons.org/l/by-sa/3.0/88x31.png "Creative
+Commons Attribution-ShareAlike 3.0 Unported License")
new file mode 100644
--- /dev/null
+++ b/python/pystache/TODO.md
@@ -0,0 +1,16 @@
+TODO
+====
+
+In development branch:
+
+* Figure out a way to suppress center alignment of images in reST output.
+* Add a unit test for the change made in 7ea8e7180c41.  This is with regard
+  to not requiring spec tests when running tests from a downloaded sdist.
+* End support for Python 2.4.
+* Add Python 3.3 to tox file (after deprecating 2.4).
+* Turn the benchmarking script at pystache/tests/benchmark.py into a command
+  in pystache/commands, or make it a subcommand of one of the existing
+  commands (i.e. using a command argument).
+* Provide support for logging in at least one of the commands.
+* Make sure command parsing to pystache-test doesn't break with Python 2.4 and earlier.
+* Combine pystache-test with the main command.
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7491901366383243cbb332ad53377652e5eaf737
GIT binary patch
literal 173595
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%0Amp0D;JCtO
zi$`sdOD!!bJ{4fl1aQN*F(j)RsiYej8Q`j@S_FE@A;(2S4rN!SrpPF^)+$EcC<#y<
z9wOTKILWLQ$S}xhfrL{_%;HlEtVuqOkwrLjgqv~FCL32b`_OoQI+~x>JwUW`E9RKy
zsi~;um@=4S;t@|$;?LV2w1EYb$KgG-u1b%t9i!!|LpttMR8Nf~gclIT3GO~+&Ak>I
zi6~<iE3E^dYGi<)$J(WSbuu7~_s4nYTvU#%`#QQDLiN6LGDi_zoeO?--8J96VJ4-N
zLj~fqnT<EV{8=uw%ruDa4b;IRTUuJEDeJh$2sY{K0m6@pUuQq5ablhut8PFY2qmWt
z=?Gev54Uk%(BOD+mTF6K<Op<GAwan-uHU>RqN=!G&q9y99L9(Vpz{=^hn`+&F|tmi
zJ50IAha8x+{oPUeJ9me&C6fOID3ykZ1|L+<HD@kScaM@|QU{9_rp19(vE?G+X+H8T
zS?rjDsh$86e*z$0p!W8H97v79)HW-xABo4GwLN@;XPQFdDwlJ#<;gL@@JH#z7pny+
zb)s0Fdj{Z)XLRcfCox7w+xEGMCpMrQTOFtJ$RaWTpJ-`CeJJ`!jK(i)eB{DRJZ(hc
zBCD6}|KR`n+8guvrs!a4<cC`)pADei0P|TYuN<ldqJ4on{%vk<7C;;{^H*g={FJvB
zo2f~%!BGKjvD9K^kuzho@|<V7Bq5m>j?7ZBC@T@f7wE7My7n@UDhoUsDMb{|6RdTv
zN6ES|O3JQ`42-lR1B?`fPJnubQw()#qoZ5T!N?;mxny(`P^2Y;#I=qVbc8^EFHzra
zqV=BAsIj$nXbYgW3`UkiCr(Th0PE3?Zp$AO&-KtBeDVBE)Y@94LSa0R+k>f@ncGJ{
z_QrEe!Oj8ZSOjptk&%RM``0mg>7_&+bBu2ta#NJ32~YB9AutP2&5}m=y2!DPILLs0
zOlAfsH&n@{B@WuMGGEdZMJstReLic@1~(_Y=9M3K&GE;+c=v1q@#mVv(g5>@)Ux0E
z0F1~>QtkAKOhEu=j*@Up0BtNi*ok#G?r5na(iT7bz}s7W>gdU&6Wn<UPu6p&C_uYK
zP|VtBK$$K9<}G5Y2!@`C)9z6j3sA!NGD{Z7DLY>n7$13!%m_EvGk_zDlD_#D`y1#$
zExf0lTZy)9R?Hqn(}hQ<p&H{DtDOm>87Q=TNGdzFG*MGi6BUa^%IEVE$Qi^Z8cxlC
zK9StQVD9M`!g;WCJYNuG=)Zp!P+JGG;~nwd72CHLh1QNpEM^h4btcr=rJOzX7(ec*
zvUAQuD`T9Qcx=fnc0n_3Zn7GL$OiGm*d`14wntub<)6ImHJ4m_-%M-dhYG}Jij6l4
zpwAN^pAAyW-tOb7D8rgSf$W$-$o{MVpjcc?Dw37U)V_+2H`Pr((9z*QQMubL9ogkm
zOU@Z*Kje0AiT0tKB&pD#=u#vAy_Qc>mYsHr=G1dTmmVE8xgmPskz}XX2Mojrb@7gi
zoaiL=7?eXZPm=*(HXVugv2}ym0OruwQ8<M=hTHRbs#00(!-IeDC=Obvz1;vg*f;|$
z7m@jMWdNT@cCm+1*UK*acgFpzm5}=P_;T@RZONs~-PYcNazwi}NA&cQN_#IfS82&n
zL`#p-?AmJG=SHHvb!_rtW;b@(|0Y(rnepOhN~fLlvX6f7JvV=&xv4#v44}<+fBCaP
zH*bLXES6gK#nLBp+f0DE+`P;vEE(Gc<E#a+(v_)N3nWtpsFg?2e(unT3q9H(j?Jaj
z&{NGUzBsd>*-0a2`4oypVW1jQp%w{%6pKciFFTDO(bV!DZ4pNUV`DX0^c)+}fL>5z
z%)rQ-oAm&Png*td8Gq*KCL}OzoKQ5C2N-%fk}THhW+VyZejO7{)Ev_%A5}Uy^mQr4
zEKu(W&Ys8C<|vzK5l0OQ$eE4f^I~=lAZI}4&l7+Q0Oq1713xwfa7ZlJDwT?qTEZ|)
z7X#cM_komyjh};`pI?uq8kTF;KTxKP>&tY)nM$UKtw9y+jtQ;78aCtR`=p@njBgHN
z|9?JL+;Zaa7kuW;SN{LsTiA2d=uEQkXB&tg4p47^`7A4f&ZN9DQ+{)|(7GoH2RnLw
z9NLf2NGXtD2aud20Qgl)eL8oUPY;d8v}I=~gR7W@=K$tKXMFYwW^;zIWXhHKIclmz
zlmVD$lvSc4U}m!b=g^HMD=suCNkhi62Bt6>>(oY^$6yOMT>5t#>804L78~3r!woaB
z8m_@bP0~!8J?&}ki5~SPV+8gnef_Zqm7^xCK~`x_r4?r545VPg08yOBb<CO>v~3OD
zX7S9d>%llqD~)_q6Q_^mg~8V1`SsWt126~hkByDdAO3rkR-ag-1&a(Qr^7g`ATmBh
zR{CK*V`m_5YwiB+*)MqQ=iYGnCw>JcZXabFE_r1pfWE=Z8>eZ3_`xWG&eVjVT)u5<
zsa#q)Tp6T+{)C1FGi?!|d*w2Z&RygQKog8H@6g7<kXl;>WA$Px3lKrv?cAbAtvLn*
zb<B=I%b9_YIs`jUMg^jFXUXqZAt&fA-7OZ0C;J4LkpTI;0%;UC!vQJZOF#u~;fMf@
zO3gWy6*E>=jJvg6B_R$EE0&1`L0S<J-RoHc5?mcBrGegaXx!9z^2c{js@#$m@g7?w
zkOLqA<jlqa;u8UR{Rtq;^2)w!inh#B|2%ACWB_MCx0ycn4UdQX1D4N61CKo*7UYpJ
zT5+^-uyEEnyI=UkUxPG0SIc2=sH|Lm^52~IqBs4^1?Rtgy)6+<7O0<3#m@#aZxlgi
zM-kNXw{Hn5w0loNH35(p^!W6`1s-)YD|rR-270r1*2E#dxKNAAs(2~Tp*iQIt?QiY
zlGN05%M27?QD2Y(>acjCwYws!CIK}!B{Wo0%|3HF^k9ZWO)nZ6P>fx=H$qkXOmw#>
zo`)M=B#>t<8==<r<xq!My*_K=+`UQKA(JK^%IE+`fOwm9_h17+0vPc*u`iq@5eD*!
ze#rcH<=ZEkwK|b*ZUa0d9cJGAFE(cBwjR$i46fr1m$yCTh|g`5RvxR4bZU{wVsW|4
z*0B~i{r5X!!ODL+^Ylyq{*sH{drw>I+}gng@J8{o0p`y+dF5~wK^2%3pXwV+=m>J@
z?4>?+7E}|7tD9@^@A^@IqA$)z0t92}h;U+uTJnk&b4xl1_|Q;9xuHaWazX`2Fn%Hd
zc(BQ*-bzG+BMEugNV4$uR)r+JL*i(lT@^CX2;}N-E{dLV;!ah8egzYJvTCFqGfHUZ
zXs4I8+$<Io$UjO$9~mJttw?v9%CITl){Q-CYcoI&Fa;>$vtc%lje)$LrPhOaJ+M#o
zy|5)0TYACuI4WT0i|tJZNMk>2;AZf~h9e2P=(=+&82kt=S!wK-9EHvj42q@QU5o$i
z=v6QH&ZRGZ|Ie2#Ibmq3Al)c_Hkf&%2s#Ujppx-rI-Xvf@n}Vhn~sdLy9sgEhenk1
zC6E=$L{H^$sk2Fdbw)`6HNnUq-x<-m9W~k2+0yLNu`Bb`+N_>$SX@80MX=oAh+IJl
zbNNI9E}Sa>XLM=8C!KE*`-S<UO{yR|G-!rnfSEgbG7l_#7zPcGIzYWx)a~#Z;IZGu
zL^U5}^?(gHb2w`}ma>XZEiG-bc?$YC0MV9JAYXu)bFs7DH@-J8um86m$ZeY<GjD9z
zhkEym4eIi5Aod6UGML-NRxCueRdW00gz|+^X~~p}w|1_~?_T!3V~#%Sdlz5u?q41%
z06$P*e?AvK8({uCmschO>Hveeoju#ewwa_sJ6H+l1<|IbF&i`!OJ+_EPvmiFE;>i`
zw+ukKvp=FSpld#&-6fZrH#l@`Mu3n2&JOWp&D$edoAYF6X+|IJbF!kNHF4Q$UsOQN
zL!)H?myU{s%LeibPlK1^>3jwJv6gA#$fOr~&FYO|fsqcFs#+L=YDO?|1LTla0FnSz
zNGjL>==Ft8KF?B0{g1iccV4fV*SGg`F_Zxr*VjLuzXyC9HrCYfH-vu9jvH)vKm0ly
z9*f0i5)B-4?8@&PbMy=T<HDC*{hP%{9#fhsK+hI=Wu`&=*--p!fcbN{2)e(^Qz?RW
z&t0<faW@&Kdq-CG$75rOV647G$Vx3%5=aca+@+?RlXgsk@eWlmZ79~cEiPrpV(Jl(
zYXY!{WBMn=W2&J5@@94aIdfDSK1P$}^V)ghX*QiVMNFQsBZnT>lnhhMC^il$1u_gk
z9gl&ZTqXzVC|~YiP4sXE$T6eC0P^+}$N_{5<ZKzN2Xb52t_SyeAg>2>`*XLoa%pRH
zLgHRawkdMlLjChi1nm4gw&o6iw*mc$hok;4{l!;4e!>akS@?l~_e=r!!PLzg?fi|?
zVU<^A0<@=61YOX*X6OAfw$^le#sbBo#F61!Pa@b#fQ^73^0SHZCdV$d6&*csK9RRq
ztBC+*0Yc5HAxJ<Gb$AIC0leZdWdvh+ViCy4a^B}CJl!Sj8PDlq!rB}SM+^1?X^PE7
z6{dyE5-2)7i`4K63?&8w&*^|FjslSR<AIV?xcG_lxE+hdP+#^Lj9eaBSl({{x$QQw
z!Lt6mEs5BjpY<6n^@UH*i)iV}gu3Sw{qBw=1#<g-_Vd}#Yya)-ec=6ImJZnnw+{^s
zEr0vl-+s&Qe)qd81&fcT3*OTK>H}rrGXdfU0`iR+ppDbCfqN=Ue1Gw`lL7T5N1V2M
zEJ0<Hymb1zw(P-KxLL66d|up~M3$B=Ksn=(FGEcf(C!)$;3m)&L|x{mj5*W>VAWHO
z@tgw!kP<hN=YgT@GC|=J-J)m~lJ>bk&EkY^F4G&)6qHj%Pyjnx^@}=L5ye%swPVNy
zGSBgxcpRFG0@lcN(QnTVNDvChQD|iAA-h#rBd-VS`pxeAv`-VUbo=Cr#jUkHN%La3
z5PRy`L>tz{)VDhr=QC$^ULO&_*V(Vji-B!j#KwT$+uQrv4}9PQSAOklU;EBXfcL@H
z%@2m;(qQI|(~L9ogFQZOZ<i;!E}JbzUQ_#8Dwj@WFi&*m$yUL%kxdRDuLiO7cLPYn
znqb{dLfNW5)JM3Lpx#JE<b0Kk>rr<g9`CEy2_lC^5T516QX@yS?#P(hCw8aQY9=FH
z>fPRW>m2@V%BzMU_{?D|gboh*1pAEZr4*wFX~>*(M?LSBO<=0+<A5B1$c4^&Ag_0m
z$YOCe6bnv5Bg0z5-_PIQ{@f8rHm9BFh!tYd>aeoG6O|#q<`h*#?%f&Eo}Ceu2EEi<
zZi6{*9LHcglUVP!qXlr}!MFYV=Rg0(Pk!=~J74+AS8knYX=OIaD+dd>52tS40P|VO
z%%>}_Ot<K{zxx!L7W^(0V4l^W8R^ksn?nH@g5rh=tZ|9F4s23D1<e%~GNa=5z>zXb
zxoSqQImk2j9V&Wp8eblS$V(RhTTG~!SE+r)g6Z~@iG{w3;YCa<8ifG(d-@c(W4JSb
zd|*g{v`je+l%HJs#vScVuj%&ws(M{yy*%=OFP^JyoJP)!ydKCW0`Y`GYHN?wT+~E0
zE)Di8S!bdX-ZSd1z<YS~A>?4a%3xa3-QtL+MZA{<Dp1UCfmc2=v~cm_pLBFBSVt#_
zqopH{y}!S&)cnvNcP@JHfyZC6W5>>m8Q2-z@h<~9vveEK?JiOPy6zY)TzB1d|8m}W
z=e<}gXwkuB=ZB)5|8Oz&1~YFk^C<)Tf#~Uz)y#3ZyKB{5qrK}tkdZpMo+k+~$4pOT
zs>BwMI{;OeIs_~C%YwBF#vO{s4OL-NRLndM9ct1e*+}Q5KqD^;+TD~-luzAJ#Z~}s
zl2Ol_)wV%&f5I;gD<V2XvwGMwh7-34lpGvVk_?Kch~{mbqv8j!IKXo*2OejYRP+1a
z_ySy?sgc(Mxt+CQ19`p>P<Kxv_lf6)!qn5=p`vyt`YmHjX}dm;H3gX8qyZi=HXdpP
zC7p06?-R7`?&v%2+8=%W|66(T$pdvycjG<x+|zmU%{RZ|uDkAfSAT#1+3b2@z~;Xr
zK;4emWxFEl=XgJZgM(+k?QL&+-}k@&{hMZ*oi`eW4&KRaK<eQKblZ<S*_D1Ow@u~p
z-tMz>(Wws&>+lX9O57*@H<~E7L=Z+2$N^+w;8H8PF~uF-S}Y@Nt7XBuQLxLXq{T4O
zn!0Yygs#0uF!jWVrB*Hh(bK~&bQTMAa<Fl*aAcW-rT3TgG<oryO+_WC;Bf`b=yAWf
zU8-Q(+NnEE_54u0#ozx%fLqWyj*-j#(XJJ2+z`a9mNQSnFrdzPHClFbB3~a13Kkbn
zr$<84f!DqMRM5Z;Fkh;-`5NHoifx|Q7U*rhbv`>VaKh&=yX-gX1#sJcCv2ymetO?6
zx7_ki>(;G1=f)dvT-n{-eH$-8yxA@r26T4h0OaxB0qFP~#Nu${x4!kQqw2pCd&^zf
z*X>iiezM=o1NlBr_3~tIo6PUJ0p`zPiDkN9ipkzK6QI6g$%{7)JF%GwDYo4S^m13~
z7@iI`m$@ErvOp7$)jY9CY(pqm1`71tSb#WkTe5<wXVpYuIpiVZ3YHs7+n{X2_f$70
zz#OtmUKcoFJ46a2{%zI(UI3-_R3Q|0#-0W0JlHw9L=(Lz_;?O+U8g|FhwgW%JYtHS
zwvQa+@)*eLnYawU5{CtgmIt(8q52VFk->iOCV@S#^Tcy?MNqM|hz&T82G=9;`9d!j
zTbBm(E(_G>>)UXBerV{}FJFH7o$G)5+qrxDUcKo}Z+hbQzyJNkXPtG{M;XxV4pMf)
z@I)hQY;^>n>*gr`3t#xcR|I=^rwZQF0qVUyW~$fCG>A|4x7T3i4Q4*+FUY}S=6n00
zbapHo33Ki1c*;H8CcEWy15dK_(3&?1$)wFsWcIh5=#KEL5Y|M&<agyMTP+BtU!a~&
zk1|EU#(h;F9d!Zji3Dmebrk&y8W_QJ0nAnH4aYaPvki%T>U9D7*yVY1RQG2kKo_Hy
zRVs?LW8d*SodRHgd%HtBwiqC1jhyX=^+3*Gj@vyypw-7kGD;RYJ&s5q^`Ib&92n^G
zS>33FMG4Wl_NhZ_<Q*EYu`LnX(PHb?mwT++y7lGxdTSXTUiHscU;X`|?c4Jc0V}pl
zCKLbQ2S2#s$}6wDoEITm@826cXLkz#eRz2IC7=A{Coh@|cu$srPnES#mzmG>Z(^#q
zHJEvWna^5gj#KNr)!$95sqnoNOTT%N#7g@n<q9dfc>zKgIH4l}&|N9+(9@owp7}nV
zInSq)=6KY0ltAh3j0{Q%1dtC2Q1^0)ERX^W13g5dm@~tHp`QcX0i4q0=P36~tVg_s
z+ItSE1zY5pW}*243ESI=);~zJ;o%ku<Q$p>R$4EuOvK2GEdiZ*ZY04QMNY^liB4w3
zYhVGwN0iq`3}EbS;(ncTO_7R=ot|ds4B(Jkj<DExx84?7V9snkw{z#Y-@NRyTdE@?
z-oCzLU;gr!e|YJom%h0k%=ZT9+%1aF1c3g-AO7&`8#it&?hm}DBcV*@F%4$k0P_Yj
zpJ8T>ZQ;VxZy(moyd?e|lOx6iKmaI0Rc!3v?NUd(V0allSqOT!0P2NDWax;6IXbe{
zp#_3{&m9dZ-ycvsH$!pJqp|?<GMp*}GcJy8(wHL8dxKhDQ$a~C0DUm^yl(dgP<PHz
zV4l_5bwSG>-0<}HqeOT7ym=fWw_EgWAh-2q0AAO;8l8StEdA@y;PHg;wBxm!Thw$S
zEHZdK+@8_W3l^k>i`3=325~&RjpTS!d7hd0k(#kHkT0-g7uL?_i4UO%{`W0g-uUCI
zufBF~?3}loZ@&3kr=EK1r|abwdl&}S1&AoMD}tem&!*?YAO7$MXG&UWF!KhOH<<Y>
zVCE;UdHsE*j3-&}5Ug*G8X<@F_+AWf*y&Qcm!pMUJ~erca&dsQ3ZQN-B-A9pc8R#$
zT!UpXB(GOZAFeLQQg6|xnw|_1@+2TNt3qkrzPhfhSv@EF%W-{CGhj3UjaC(i`#Lxa
zAm7@mbo0#{iEjITlVIcH89BfWAP$|JL5+crfqe1u8lCy#L>5%>zTi~pUZ4uC$a(=I
z2RrBPRBT}Cn2rQMN8;n6<?3@}Kqsx4cj|w;G=ML)z<Zu0uK@5Dh&R+N79idR@4ov>
z4}9Yr$M5gEcFQfdT;JB#cF#l%y?zh|J`<K(u&rIY_S1LXdFR}j(#;#pyaDFVduDz(
zK^;HxIqi$boYr{{BIJ4q!BqkT2KtD$KP_0f0P~YNeL8!YPxIjA7WWDDII(Qrq4sh_
z3%W8gJ~uNKkuw^TBdERGFBoyNN85c@0A(z-c#dC{3|*rhfEx`-HTIillv73KwdeuP
zV8tCR3REGj;5q;)E)Vt+{p247+ssc4<hE<29>{x^1a!)a63O`Snz^F3HP)1zB8L|j
z)Yjapim`EIY?@iE`$Ic#?J^VX^Loqb0%r#q_sS9aJQqX(>K)<<+XcvCn<Id{6Pq~y
z$W1r>Xn4z(;=b7V+_`gWU;5IQt`O(Tc2sXYI}ZXivJ-L(yITaX7e4WcPyE@TbhI1{
zwtgr;yur*H%zVZqm4hX>@cEXWGrop`WnWa4BieRuBU&TC_}$0mXwlp(bu~HUhY8i@
zWMmOiW&q?IDi$1?j|kVrIr6HQ0xiHC{|-hpTytr=VCzk7k&L31>WpIsMM$95gPk3n
zLoO%4YsTK$t|W|D%Pul0QM+1D_(U83x4)7V&)F)0900|6<Sec5V2O!<{MBzsXyFmc
ztKQTmShm>mO^S`<XkqaRRrK_<B{HjZeU@K3yHxin+VfW&Cl(}E?Q2DE@@RyVzdWmT
zb>F%y|8?Q?DTt$xJhcdrZ5ANjD&Ax}&IiHr`~U3EKDfW{+r<}Oy!E{E&b!tw>e_L;
z6R~raTQ+Xo_}<%YyRB!oGxNhOuQZr>gPA`oG;^F*t$Nju2mFM#_a)R3di0i+S-Ri|
zpGt{K3z`$^aw76-5mnnf8W!MQLN1G|vr{0IAj}0+8iSz)buWvvPa)sj4akK9M$02)
z&771TZeO`%<d`$DwH7JW)@!;@3KkC*KDS+6maZ0Y+c$6YsXStU9Gb8V<n~|*8_1We
z3h0_YO%%h{o_Db9W&!3IEuA#Ct3WTjw`|_nHdz7!pabXu>PUL@1Ufe@Qk|b@7D8G<
znbc)$`e26iM_@o5g-HN9x-|vJ78%e5*aFbU9(?dGcHDmZk^5rjINf;Tjo)l(X}Qk^
zbUSX>*3NA}M=?}9_QSKCnKv}^#%b0u^O=-hW=b>1`DKgF-L{9ad(NGor}LI%sU`1G
zDRyWy<4{+vN=1Qe*`W%#BLVgHWNBlQM_UF08Z3uYb_Gyw7@?p7unehE4QP8Qq(`?_
zsAWzlweE6F6*h5_!-QkS#_KcGM{9b#S!9Zv8SQ)tHTZ+M-}+_2`Zp;c2O!l0xjpL5
zE_g0KCZP9yB%$76HDV5q6=?71DMB;Q{CUbj1L*||6@2VK-VSknx8SeYqVlxE@d6N+
z>5Sq&ZGzn|JW0H_tYYI83(O<E={Od0tqs76eNVM)06IVxm&MlPy8gzmfBk>&k2G|3
zb=5xbfe*Z^eiWUpopT~2TNNR<0MMU!;)!eSy6djF4b6OdB&-4E&r@c8xC^0syAEFL
zj_#v>*w*Y(?7I|+Z_us)ns1Go5i~UxQGP%$?agD<w@t9TqEGik8M=RvsCP?+f-PY>
zIAVA#p>-n=mjm)Li2`BI3>oH5N&s_UWt_+kP%W!Kiix!30=5omXDm?H{pePQ9$Ra=
zI{{3151fElFRd`3FI`om*Iu2_NL4)#@?NA~u4NM}GGjHR;Uj$!UUvX>Q>#vG6m&b+
ztcsuToflhGq9bAj0PuOi?ETdW%mYhq3CJvDj{b2b%+STYXT%OjaMkQQj~0A!T@%0@
zi`14a?;2dYcJAI-IiKGD{`aq4xNzYQ_th1O+wixx2V02E|Kb<F_}-~9^QkiS17Yhk
z&CCy^@Y!JI&tqo3ua#aL;+}Kig%|$gnl)>-tyr-lIrY?2@4e)bOKuWBu5-l?(48qz
z-`9QkM}PcDAN*Vhw+f^T0W~Ejrn!P`y9m-MBidE~T98nW0O1pRJW84!dTM}Z=<%xb
zp#zu&=F?7rU>j>OwRT16V2Q|*C;*UP-macp#Ckb~NkDqRu;Bs#RwpVBmvxqlxX-VD
zO7z>GKeJ8W&Lp2mBVV{AptoHk_I<w6#9?)WG{VEDA?38TDTIYX#?f7;uqEO$?vH<E
z@wKSJzA`$+5n%6T)$=s15n!HEfX=L3&#NBC%00cg(6KSk6Qke&?97;9Bh)M%41N2p
zx4vzE!~xq!KJt-2t(RFQa<<g7^M@XK=wo7Qo35-fU9g@mU>^(+pKbC=1I%Y3GoR>7
zB7Qg>FMHX`zWbH0eC3W!n>M{wfKCq%w?{@sPFcTx{ReKo`R4yV^UO1Uf7@-h9XS(B
zeKPl1vE(IBk9qmwM4)VMEuwZWl(RG=0nTLs<O70*55+DmX>q8(98>>jOkpXY!p1~)
zgQDfXB!GV%H1vEdnJ$=hq6?p%wj=_u9ZgelI~aRQ!L;~$8tkQ&(KA-Y-~BhykN>e{
zoR=IY4$cCQ+X;va<nxXQ=-nTSY2IALy5XH~X;O|ExL68Wr<WRjUa@Ux<#>8&Q53iL
z4=XvQO~75d*w7`4$DkmKS*N&<v@#0t&z_=yJRlRc#kzT{L~E6^jtxge(hlmVq(h8<
z16u~r0?@(I#a4Ulv1?<oxbKghUvb418&<7a^_BfK5jpzxtg&;2FMQz(Z=P<K=b>We
z)0JBe^uCkP*&AT~JY?o~-E~*@+u#27ySHxLdL_?p<Z0_Xs24x5;o;#^uD$l!dw=z-
zU-eA&OIm;XWWUJ8&Qosz$_$5sl?%Xj1qxNi)QGlSS%>ClU1}1yKRy`A>$`?SLTq`U
zWsp7Meoteda%+-ycjC+FXb-uRPPB&)fSuFVLBbfR>CtssFOOow<{y24=$~(DdPbD3
z-QCGRZfoS7^8)(dr(@ZzSq{`<1MnUiGYw1tV#qCU)<}t^Xk07M#KF?LIt7ros9zQq
z0W>(t$K(~jlg=o|0^q<MZn5*g(#+)vjX~H*PbiW>Wf{Txb#yJy_tf8wJitAUd;0(V
z-`DJqnPYp;d*1Vx`(x*v*}{4~KF|B^yYD(dCcFdH%MT?p-``^ng?`=u^XDlu7XV(o
z=9+769~~WCwYT8|4C?rS2`1J3=}&+98&mxvPE~?o26x7ppa0aJu_$SAV`>s;6jqe0
zqkjZ#{thk3yA%frJv9ba9@2u{;_)HEwgga$`)vUD<rOIUj*7zNLMQBnxGY(>t_DKC
z<|d?AXQ_L-rC$bciRatBh3KoFL#{}xWaPSoaopTaTOVgYZ)p$cV_%46D3)wODyYnK
zM^7sPSc|nmYWM(W1boTt6;E}T;>f_!_DS3(yHa!N*9A8Xo)h=O98&;$cbCp{5ez;$
zL4i2y=b;7YvDB1u#1paQgdqIQ#fxKpDoZZD23ZN};`Z{r_g=6+X3p$<(V|7)+Z#LQ
zMGvoQgSohF(M>nq^uhyS-!obCJdh*LnR2#F#R1a*^XF0VQ?sU<1p7JG2J-q5WBdbW
zP~Wj*$A#bd&UaQ#g<VYdhfpkZkL@XE`#VP97gqxwFcoO0=TKgtUY7vFoi$h(1xOA@
zR0z~`pRuw4`x4QXtnzIK+If;r3QANFv{F-SJxxwz*+u-@4y&I|BFt*f`CuQ>|M^%>
zfL!Y{5)irAX(tG>w306dbnRb6G-s{?XE5xd25eV%op!Y8=}C$DS9X|csRtmQ*NKjJ
z96%nR4!ylq>}Pw6k&yD5oulCiQj3&lUaX!Yw3s<>a)+>*G&ifi0}q)1Ll+PB1i<p&
zUb1w}po6EMzG#1}oVPc<=}p(y2XO7prf38D&wlo^_Z+CKGE>sZbZSB~t*1}sH{Ag9
z=OL(HcinZbf9k2Hu3{kP!4!IaWVmF>l5cc$blg+#GQsJNJMK8=VEAn7uY2g>pDt~t
z{Kl3_A`6}X^Py3qJz2rZ5u7Dh`QrkR%cX?o?v5o=VQBJ*0P`)d^5qq%xtzinDF)6{
zjBo;o1FVr_o@TSS>ay$vO;iE2B8~>G|I;i*wYFyjXHDcKXK5vq4d_q)Pee<X>-Yd&
zZG;_>9WwGq;u_C5z`RN8=m2CCKj9;XBqNg>Nr5>qICj<j0qnV)i73F)364TsowQXu
zR)Kk}nR&>CQ2gDYn>VSBBuD?99czL2Fxn2X3jkejG&FQ>I53c%Ov>SV-}~ORot>Tk
zvp1U}7eZ}k3pPO<uH3L;L(@zYJP)Qt@o?J{52e)70P|TUvHbFvzdZ7%KmF;gJgC=h
zxjym46F>d)pZ~n&M?d<})wkb%`<W-4aKfkUPClH(kL>7!3F3ShzV5MKpVm4&)&`Sw
zRe<T}n6fBV#XfiXj+7ey*c(w>DWYa^Td3K4{~*yexI5a7-VK|d4d{?pA`R>utqX=;
z$Z97G8BM*vpXhTR$<R<=+l1Yn^~FvGbH@$nL!XUk`AP-2kxpcUuO0a>kVRxLR$j>_
zeB{uq**DKYT{PEt;T_H7vs$9zoOZDBR;{CB-*Z}m0prKxg44$Xd90avg2h|xL;}Eu
z&Vwh#zFVM<^8j)Q=vsQqx~^Ycw{G74SUI0Azx?t~*Gnz+?7Ut(7oV~J_kaKQ=gxHG
z?R41s!3Oo2DuOn^{CQ9SwZ9Nw{Nfk?3bi~2at6;UuDIeA-~8q`KRa*Uyb3?&h8u3U
zUi`SW@DC9u0bZ>Ky9;#l=KJTAc0G7rez<g0D8Oq>fLBQX+;F!;T>{AA_1-SfsCOu#
zIlE#xLakC&GR$@`=@v7Kb69};umI%Iel=pPG@|BxA{X6r&5&jZ?2&3JBAuI#1?2kc
zGSs)z0J$Ay3m~uW?o_}Y(EC3X(#jJQ8|PV~E*aMhOD@pp^I6lC3UCIqMh*-XfL%ih
zka^mXr?r1LSKx&Q@B{228+lrfha`jBu~5kznN@<FcRjOdD8^@wBQu~sRu+AT01%gw
ziyi}qe*xqGbVx1O+1gW29l1YN$hUv=qaXcEQ&ZC;`zwUHy5P!ye)rvXziuW9o(Eb8
zJy@XrY_lgez<ibfI!-s=eDi5fKmGJ;>w)~@i!Xk|CqMbgpVfak#Nlym&6+iT$ITx&
z2~gW{FumqDf6pI&_`+;;%S)4^1fVVvAiYBTE6#^U5cLVPTR#}l{lf|6#ra&2NGl?S
zIYWloUR2+@-P?(_JSAAV*fu^+wEi)HQ#GIRiHbwSE3%XVl3NS-^_8^|+WTLA!l&LH
z<AEHX7h4b~l2)+2`?`=$dyxgg`UoJ=!z)7Vc?TGKdc>RrcTYDg=`K^)7U5ihO)=JT
zip#~$n)aY;U}r4GBEWt_IWJVl5tL3HZ&Q@a9E=#iiZ`B7lcJqi`8XYYH0J0dI0x)p
zTNhCTrQY6!`(owx-xPx^&OiVBznF~FVmqnCQQ)fw2M06LVc(N!Dw@q6^XWuzG{F3M
z#LU0_?Qeg{E^^`rbo%M1f9(3}um8^8zBuQcbIvd9>lZIx{P1+YoRhiFy7j-Aw{z!h
ze_HTImqt}J5E&ULg6vYEFQK3k(WZfjc9cV!Q;lTTBfv>qq+R0MwnJR*6AXM{r$h6L
zSvvceBE93HcKY;HU3A$w?UZW~4A2)~MUHI#iS&SEZRk+ma`A*W2q53N#Q=GICVBn1
zG%k3);oSkf=;c~6$t%|kzf0M5>L~D)7Q#r+JJoHO(8AlB6(ARM8e<qJKRV<W>66zC
zo)?M*oytxLV25)D*8`Uk+gs3CxOi{DiN;^<Xi$&gB++j=$*FNm(9r?t0B;6xDY4+S
z!PND2@$m5c$*^+XuDRx#pWx3lQ6ZE+%X)S$zN;<bJG<s!WU?F%P@hQ<Z!q)cv2K3r
zt+yV(XV0E<8O-rR>gwwH)lE0ubi=+5>CQg;>?iH#JM+vl@1LxLWja5I2OjvvDTT_=
zF>aK2=;j2NLqb7u6Y@w7lZM6;>JVG5E1^&TSVbVsut2FTb4UQVORrl~ppReFN>`uX
zLKmFUL@SqM$;-I(_+Ua!O>?M_%_&eMtv!<hUPvLaK)IX#%%>fj)yOv<E&&kQ8<6wm
zSG_TySH4NJea-#@Yq0?Mf^mZ>`#QMGvt$?O`;d8LSE{QzS;g9=94y>S<e8ipfcM~-
zCe@_m6%=f-K%o$fMM6FfQj!4uV3E<zrL?3oQqo{{?pV^cA4lIW)z1O&I4`z%WMuwi
zSUI1TFJC^odiCnR+aEi(EwKRfd+)vXlxK@xzQ5nW!E~}TnECTaV)@|@e|U|}$ib36
z``ORFMX=6jUtgpZD^`^9`TTb2{t*9OeDTE_4@OlVr=2@DH0{{7_GOuJFbB;)Rn5#1
zBsG%tYa_8kWwBM3I1~sVPj-php{WZT8o(^fc^+MJT7gbq;8ROZFmERjV5vaq@jV$D
z4O<j|CyE7fRtvxmnlomK{`F^l+WKUhv>!sZwSDBA$6a6S#CGn>1uK6KjT=Y}IYp`#
z+V&Xh#RD=<qzkWH9EIf4(X3c=th-LJA=nF_66yrNS_WbOxZHee@rc#%jErw0djaTD
zvlm<C1iiqpW{yp~zl0A-P>ls(Yhgd_4%GneYJiv8f0E=T%gT9s;~U@j^@$3hc1Nhq
z&arLUwCM$hs`K+u25ZfPljTs!D-AH8MSy<y-FJ6y*s$R$TPqi!eAQWJowZ{!U#w!W
zxK*?A&x;>ee6VbZ4?gtkqmt47RS<M*RSV1^v-B6X*IFE^^<dtoc>ET{a4YEA#E|Ft
z4xPHdqh>E5AI=DYl&;h;1bY>W!LCsZhAvYz91-BDz0Eq)96&faO7z)}2=I8UZQKB6
zmR1<ZSsJjVl@rbg=v^O8(r8*~3)G#Ma(1cqj$;F(&g!^Z^#SN30@9$ar4rfk>8tmc
zN2`88?PpU?Ic_3d^py5+?Zn|2U0|`R3#D>+hp+Z)Xq5@p(#9US$|O9k!!<uwM>BM|
zS@<ykc}K4tP7t(CmX-70`3-M)!}|92_IoB`=e#H~m@_-a(d10&<p*1CIhY_mS(e@a
z^XE7-|A&A0hqu~)bn%0_?^B=p)b}U*WomA2-YkA#;rrhAzJHmi;^#y^lAXIY_qdg@
zg<z(TSa^%Yk`p~vS`s}HOE&IrQ95!>=ZOzvV1!`eCv;=XoB$wLLZEMme<QIyxXTl4
zI1o&CRDffZ0)d*`{Ru!E=qI}I6B#M30LXE8j}w5p-my{-<SUO4=-NL|Qov?h#Ho<c
z1yv2mqzj=rEwA{xVCm@iLY7!O-=rD>+;OH<Geyl*gV$iqO+!Is{`R~tcz(PlZVTp%
z^F<T3mFi5`v}SG(NOkn8;BaMF1G=j$j7?Kv<$QYSOJ92Z{=&Do5Q<HF{>wLS-dvn5
zdijAg#XVam3^l-fmYhaMN4@*+zyDhMx~s0b>Rp0uN0Vg%f~5|feDcYEzGlsufvM``
zQ~A>G>D_cpGB$D)z?@@jp&KJ$D+Xf)uvHZUmVsJ<a<J3{a;@%CMLK|dA^_Z}#qz#S
z4?~&}Y>z6G#1$#K$oG^{VA{7w0QtwW)W5q;X07<T63XDhvI>LFxVfE2p}RAY+BdWE
zMEld(>d5RHt@dEkdEdw%o(5ql$LPC8S`T-%VD0KcDSPCl=A9THd=wka9eO!O5#V#<
zhN(pR=p%7?V7UQum02S`d-0wV4v5k0+|jIEGIZ@^!g*I0LdE&qR9HE0ANtUT{!<Wx
z(nOwfu04>Jb~q>K&O7fsa<c4uw(8{v(~j6+=Fbym{;h9)>tw-h(s5ji7cc&ox4rFc
zYp3$1fgSO4pZnYm2eb3@p@;8SP#M~FtQ$uK02hAKaIuWJ{?KSiFlbkiZ2%Pm`B+6Y
z5iOhR(ou5+T-O8>7k5HtOCq*NTwYfK3x{h15=)e_Rsh|WjYKzmEH9@7aaU*kG<lmn
zj++v+GN4cVWulxZqzjXJ|5zty+aoqe9eCYpXgW@zox{%#i6mvzdW@aSQrDKnL`x;E
z2KhP7<}t1=hz9!eBK^2b)-Zl<o`R-cJJPsXVrJZs-&i;IJT9!HTMF#<VMh>jO_i17
zv|z#iWA9Di<SMJQ@pG42dr5bvv+oHI61F6eKtc#eL|J4LWW@Co#Ss^D22s>c$N!8v
ziaIEcA}XK`GJ=RY3<@GUNDxVY?EBiC^xj>2-Sz*T_r9m@+eI(6cPD(6-%Z`R_pMvi
zRkxn^xzBmdIny$W7cc&i4CFF9r_WrLTDEWBKChDY#A5aGvCIT52JHVIm>=U{{_L~Q
zUL|jP?|a|-^<qzyFMjch|1o36j8rv1oNk8>?V93dl2Ztn5b)Awpx>E1`w#Y#S-;E9
zsoR@vVt|E9Guw|Dp3MqmLJG`i)VPe0=7qLgZs&6uknhiU_0R)amQ4gE142*#MNr-P
zI>7D!5@z6EpL47bkmm<EW!DM;`RBjwLbT3f!+4S-kfPTe!5M)US-&knT@e9H@|V*O
z1HqMon~Lj?<?mkvNKGNpDAFXv>#B>OXF&YIbm3DE2stMgsMH2G+Q?4zlZN<rp{hB(
z+$D-nQC#Y&M?fxQ7Tm77Zn#)hPRr$&Uw-dU#kWW|&-a|~+O_Mnv9u?SrG7r1q?Z2&
z=3{unrV=}L?07#tW`O*MYp%IwOR-Gg#1l^(DD{%D&>zFWL)(wnjramh=)k<_Rb$g@
z(a5xoC=WPkM^{Wet_&!)+R66yGeAe?nozg~o;JPGvRGNsVnB||Zg$+D&cMPk7|7eX
z4nwcL1aQYUP&}^B>Ep5<F0)3NjpO~|r6zpkdw8|tNgeUDAM^|ftsAc#Y|-3;m!s8v
zM+>ocLv%K>NIns=jH>vp>$t?^`f`gUEQ=TnrA$yfR$b5sY-+S&JHDr!fFF;Qo|IF5
za{Co3){dVANiGEBvg9JxapH3gqjfY!J{-ur=RNP)(%9Je8o5{G9-%amlGK8Le(>PI
zbBbl(<H=uMs5DtFORx4#XP5c8FJ`p+;r5NTKYv^~_vMbM)V5;w54Zl8zx-v6EU~Oz
zyY_ba(rJubL`&W`)VSdu%O}!E&mHdh@px~rr+d$`U^a1r8uq0DrNPzWZ96WuJG<Tz
z3iz=)9`th+$LVoZ$MGzNyc8^>w>oOASr__)3d9f?vnG3v>46$s9(#~|E)SvY(34dN
z$n$?N0INV$zxmP%E^96{;s5-zsEs0k(-t~5xk?=Iry^Km0F-Bw8a}J0+UQhE-4$R>
zosD=RlL&&69D|Hs5&Li)KIVZ^#VfXj$Hxgo5$cF5baa|L=!$?>i;N06hd`RNa$@At
zO%Vx1KovEGyM=4!mNj`a02yvSW`v%3=9%Ar;)y5j9;!4h)z&AAVqah18pAMDd|sii
zQOx#Iw~aPtwDBW7E_9!~zJC4sqQ(!kp1*D7%9TDd&mT0>{YbO>Q2Nkt<4V0RcTA<W
z6|;Y&^%q`v;mq8us_XIVuDkBJS~hYnl)-G?^4IB*>7Nsj`g0=MD7w+Cba%Z4^<i>n
z<Zc+7V<1-7q(U85QACh46-b&cXXm>$*VBo?WWeWeuli5Fr7|FI7zE@pm<$EtB&}S1
zoe9_7<jERT6P?@tz}GBHTXLHScZzNMesj{(scIw60^}#>K}vSKM8+FK&jHaT$(B6p
zWHrR&V89pciYUd<adG0K@#H~QDbN~)Trv<)0F=HDF<UD6%v_}T^XCz$+jfJKNCb*u
z<?=puF8+^P#4X>ZC`&Eu*6{e_kIyQFeOKDWQcMuEnl6`Wt&b$#sO19eXn<eI<BkU)
zA8Mv7^h?NJ-??+=8d{$@bLQ_F8XC+}qvVx5Ve^l7q+{PyC7YbCg3nTw`e2Wiass3P
z<eyvYnTj0@q#C0tcWLkfRakI~13JKA&A~D31T^6AJ{P|EIUROvtfMsXK>#uokQ0c9
z!Y17O@0i``%OQ^Nk0W!&s{(SC1O;;@maM5h3zrfrxjv5U*%EBr6<MMtnZI2>)juE#
zbm^*pYzhFQH4{G{l645|P1^@?ML2vw)STfHha`S--#A^FNLRmubaOfw{SovX?BCy1
zs7{^_4yT`fdJhKU^F8PJQVUg5eD1mDme#r!OD&3QRRhGUfh9#V^IG2*Gbz*x$cz1u
zM|xgQPtP(MhmMp=S)WQdDMw=KU0sJ}shRXNP2`&MoSwRHrxo|S%p9od1HE<~m$|{k
zTHZQ#oDcL)oN~f?mm#9fPz(V*#h%-TS&<P0<pezSm;<-{O9&GEUg_GQq@Vl%90B>v
zc_#e(Pi<Ismgx2)yyUjX;6#Q@&7To$(X+0IKqG=|K*%l>40QxsCVd<Ph=X{HpzH`w
zxGkcT6yQYtoV53N#wXI$F$rZIo{R(@(BnO~cv_;ets|N@<M^O&g>-G(zvK~2JU4q%
z;jKLVToIX|PIq@>DfUEK&OiVByM~%j={t}uid(mCU0dr^{!-89YNYm;(hsy;{HQuJ
zuO$;N705@^p=u?!^!N9lO0P?$Ys)=>DlM_#(%0WH$L&kcQn6qZIyKN@rw4l!H5jv9
z)p7#CE@+MJ$BJ4?lATlo43IjpWBr1M&${qimj)Xqb)a@^A)vFT_JnQd?Y7~+eyG4h
z_k<bn1cB<e=l@WLl2y=_c<x08eDwzo?+`?(_f+K&4}-N_4B>+hsD8053UInqgGCh+
zfq2cZsG~xlj&)~T0ld+mkEs-F#2%pp<oJ469#<FoJGVNTQsqZmG^TKUCrz%DfViqa
zmTm|A04P>Xbn`(R8M**$pzlnUUxXavc6YZF!pMh{TyD7GhUXYicjkM}<zO^f6b~Ib
zbXlcYc{NygrKOfy$u5Ney831W@=5@8sh3FdI=ejWlbkJe<(??jkXZ0GW%8UY5UAS;
zSi3vUP8!BMRRbKQE)Y}d>vky((E|*`Rcs%p2zG0QBW(>6=l*T_jFa1sUvulFN+@W#
zx&kHxnay1e-0@8nUVAB=3#3s1U1sL_ZWUbWCzx>aH!S$Tjb6D~M>MlQUD^^oM$wK)
zjF+Sr%D%KkhG#>>-<Jz=QoR<DFccCJ63I2Fm*b?M3I<K=947{RT~n&E7$SK^NG?2R
zD*WuWJBVC+lLI!l4v5J@^X-Y8nM;~D<hKr_nk<ywk036<-tF(7R0<=fu@fdtFi$@D
z<R1=YQ>2BY7WN&@e&(5Hrj2DLXf36dvCz&(BB41jKN=;KY65w=EWOZ6r-p`xowTjD
zxA(M4l-R7a#DeQfmz@8KHD%fhDF)^)W8NCp9NE{m+zuq>LbDTa!kNiVU*beXv`IrS
z(psa3!r^di!>dnEe|6{KWM}At@9Y_H;PEXM{PO3jlZ^3hHE-x|ns0@Zf&7%^7X0gv
zY*@6+XUL>KX9VElVYr(_=+sny1$%}PSYvRsKj|@Z^o%PaII6gQZ4@rcn4Ui!w^4&<
z>UxA5Lz+Js@T4RW@TB0UM)X}uPQv#_k9Eb*Ld7cr49MbRBk0=`c};U$GQg8%C|@&|
z_N(IFjmKL@V&jDX{598H^Q(N_T>frwopf^s=BJg*%Bvahth7E}Nxi%rY{{7@MzRS}
zAgbE;#k^J_V}}|u(%&`Owqp0omco(7&YCsr$?ooMUZ^M*i=D;*J=oIHVvO{h(d>t%
zSQSSbzj)EAjx8szzJGr@+vILLctt2^M>Nxp1l#Ng=vkgfq)2Sjo`U>5JF)l3%U3`0
z`wf@6rrE+ksjjETO~(^<<hbdI+7~zBNS_Wyb}*3VgE_Llh9(={eSH9yt+Amo?18o=
zTFc=rD6-rQ+kYRF;Rzzhm=;B^ID;1&wx;;mmmu24;Ur*6*vT6>gU75*%MSosB0Ci2
z6$I!kIaNg6b!6o<p^)3f6pY^z$I?jWRD`@DfZf!6nT6L(5YmYwY={1v^CcFlq6qT$
zm`F@3)|QxmyZrLYcYo_!-+C#LNSrBa=ehQK;=99%dGqGY=dpc{j#q19t*waVSP(~(
zfrol6jeS{F^@Wdg>|$SIJbKK_@tgPc^(9_@`Q?w&V+Q2EJN494kK}(wg&eDxeT6*E
z-?n(s%Kg1Y{NUkGdce|^xRp)MRCPB%b-_vVb#*Q4HU^JqeO99~(6d5I^)3k*0}BII
ze14;52POnOl<H$3o=gQ9DEQWm{0e<4Sa8YZ3f%DJI+$~u#n`ds)evXknN9&<83AmH
z!L?^mf65S6Kut>G;ebt!6w7;`WLq>zjs~f5w9u}3)mdyrp?kGka{hBFTOexG5Yr|(
zN6NJKt_&pqItU$}l8ne1V>!N4X3{2r=05h?T$a&6Z*B%H9OjKDc)K{ydgwKI#>`j*
zdXXW@CqtSLL!oWTdFTD9(4>>$0Cwxvt%)5wc3e$YQ7YAkk<JfZyQiz`1jgjQ9}0!W
z%x_+4kRMABF9gu%%$ehZ`4v}OQIkZUQUUx}OctW``Sa&@KltE-A7sEa0k<*s)6c$-
zzf=>rM+5DV#+-2c8EvPWdj4|^L$~#5%H9EeV7k(zGVs=8TC{1S(datR6lv45p?)Qq
zo~EmAFrfQclLHwAb`NN<vnvP#@gQU}`WtMA1mr7^x8cX13&7lW1bBiDC@Efcx4##l
zrvsp)jZFyM0QCV4Y{m83wS|1UVb<~iRu}m;2-Z~QHf#CzLKXY~C~4=K;@cAme5ptm
zjmxF~3vgE?$%T{=)W}WSXZ934<<Aw6NB2~$t9ds-EBhNGT<%dJh+vLw@i4wX!B58-
zoKPf~JO_3WG__UrpnAat50t{l<*{?;&fWjO0}p(Lodbb<SxmmF%4V~5kx1ls%a$!W
zGFq3Tu?FyR5{Rk|+{J+VATS?^nHK}bBLT#*lJ!|Gc;~MpgJFzkVDH|&m*eA}o}ROo
zE?xTLY15{qN@3%bX6HkFx1mtPMo>R<#btkWoe59w*t}(lZfY4dsHb!Y^=K*8vicIo
zG0NPGaDxCgkOtV*r@^is4ca?G5bF;yMytNT?uJWC)P(<gg$g%cra@+w0s~={fnfq-
zJpi4D0oo5TP>w6Ga9S8HIIRKZP7OkPG6Qw>evp$(8N`Z3T`De%2s>id^Z}GII>|8N
z<n#^EgH&kl<W?aYqC>$?0oXi{X?si_B^`$*4@ESyaHQurQjsrFf;X3R#I`ja0GPu5
zPV6p$@_7KkysnN-YI?3_xk4R?kd2E57I^Pa+yR4@uA7DnFZ@ZVjGS)RYxe1<pKj>v
z>|8B_dH(r<-(xzR-h0_)m%UIcR*oex7$I8J-rgQvuwcPJt)!JwfVf!cq>yzP%uBW=
zjuwb4H?Uf0kaN6v%uDr-e*EJfzn`(01LDV^-+Jq<->j5#r5ZKO<!x)udDpgg{=>gs
z7tb{97-%ya2KM%!+IO&LWzT@o(iT^g{e23&)}g}7?E%<+AOwdFL?M~b2RS0hYUtPo
zTzZBLKl;Z2oVieeM2fL*2JD$k0=f<X?Agh#Tsjpvmx1^Vt0usOi=r@Nf(kLqfF?BH
zDVpaWSN)(QNg_ELw#W=cFvW2Zp^@jR7K((SfXLv)prk7HVVk#r=1U<Ytso0GP2by2
znV~pg1cal-AQmnaD%XYNV_KdJ<2ruvE==jSB{z#pn$1u_P&%I|^HU}s+3dX0EQzCK
zf=YqVyW{|9{uLEvgl^lm?Rre@FV(41OaS!en{WQWiWMvRzxK7SZNBNIoA#Z1?z!vk
zz4zWzYf;O*QWX>{;f%{Mb2f`sO&1?4CO(#oyjYgr*w|>YAH%x!>(_roc+Zy}IB;Os
z`RAX%u@uH#4K_Z~m`SZOldV(dytK2uC-w67!>8}<HK*+B*0i=>4UP=xaHJ~;eLW$D
zD{Af}99-?tgw>}3eEOXMIO{}>1DoS0U<Mu7UvI%-#!!0?Dsc9M09-mf1alaGhZx=E
z6$sh=J}U)THw0J%MiG?SlmelO(5C6M&!y~(fF#K$woNVA{Q4>6|E39nif_?l%kt};
zQ-V>}^qn?{{g&fPF4S&L7j{Qi($>lUj$@<jDrD9UkC|hLA=uOe8deSq2H9(<gJl+M
z_AJ`SITAC+3BWOoh<pC|-(b&kie=;ZV;3!2)O-K^_rHZP@45NRTs~GNlWCbedGfDt
zd^K75XFl_pk39bP<5)W;*B+0(x0x@#_~P}9AUu8MnP(mtivVaX^>SRFJ9qA2ndMjl
z^3kNA@ur*OZRygbhn|1_`6iTE@bT{5yWiQ-(Xr{AbI#dXDsa~V)baM~U;ldXe|-0c
zU;pb18^6@o>$E1~0Z1iv$fN^o(ZS+!${T&-4nwvn(<1QJi{`;qmjs|m&*nf9L2e-G
z!0v<t;cgW!pAdxE*fSLMZmb8QdVq-UW{Z{P(gT|!7~6Gofka~3oEc|5AXVgM5UL-9
zB!JgcpT(=npbE1d2&?|FF+fTZjb#t6wE{wO=T`yJRe_ZU+BB(<Lxvh?1P1_SZxI1d
z1oXy6(4$e%u;-~<0+(M~tGUJ%MEo7;vvwCR{sFYMrpgI`((T~EgPof;ZF+BhAT-~J
z#K3g(MHgN4O0}exC!Tm>)}43W`8a#54lzc3_0?D3J%9fEdr@{dnnAn}aF@Yc9WUPU
zYNhR0LvATodKqf{%U}NTSEAAAZaV(M4?q0i4L98I6$bFZN?s0@+kprHA|8)xx88c|
zT6XpD47=Za`0(NPP=jCjN1ktE^ZeolG&GrT{7DW>ndw4LcN(60y%pk(lfVrqU^5gn
z8ItxhWSiEn!<mW>M#hCynz6o=3)v)NoMK63Oa_?v8a4x8ho|ckD@M0VoH5+}>=Q+H
zpH4C+ZulBF0%z9rS+*kC2@#y}SeD?kS&=Eq*<aQhM>;$mBj=tGorh>UNift1np+?>
zf6_w#yCP+!a<@(-uR(=KotI|SK{AV)SBy)cX3wancXc(5CZQB6x7>8oO^>m2bbEdh
zkqqScnj1E3_*6BemOJja;|nNB;`;2_vmf~AM?ZQt`>m|3udm-O<jM#;FYluFP|o>Z
z>hG?a>%&?TFTM2Aam&EV4RVf`0O)Y6SKi*-+-xu=@gQU9?;>~0kt0Xm!a)5pcKP`F
z>8GE5u+{-k`9wlp`^hJtoN?Q2x4rK>-}%meGxqaowrvh3jO05U=y`*?09nx7YQb@f
zTxgt#uZ2x2EXW!R;0+ael1<PuGXhbp2f&^iu@q=x+ih3Lv0K+xa?Dq;UFcICI1;u1
zp$lIJ)9w3XjMaAobhHB;+7HmE2jJ`z>fvBt78tqpD#?P!>?!qLQ~Uy0D)>Hi9D|@9
z3Ha7Us%Xd?UI@SripI_k73i}4+AB0s$jsfe{B1d3yHo%See?7G<}q^~1jXQIeLZN{
z2NXYV@LI(2B3vl5pu{5N7FW1gke%CjKYjXruyEm_au_*{2?PReTU*=yEnBu+o1e8S
zgJC9<nH&rTA6~X>+2KmF^39t!H~;KsKl?Q@@GGvk;%dgw|8@ED<p<9=<BUU-Cr|zp
zJ4bKCaj8^lKKmS=VEYb?_W)=)fzf&M=DjfhTFKyLB^da4WaQ<f-4?R_?6c2q|Kb<F
zxQ6`@I%yjw6Wx9H-7mc39q;(d4}S22^NFdC#uD-qJmhw3^q4x@%Qa8f50Nj)WD*%T
zy!6sb&7c4L=ihVj#TP$w%PqGYVvm2s#?7bxk3(f|%C%G+*MO<B3^?N)8;(Dj0aHZy
z!d1`xkj<o^x2KC;!uP_nuS8*oa~wEzA;2qW3t2j{VMl?ufr|_A6k0f4NG2TU#iSMf
zy6kUbjJX{Fd@sPhT?`0K9p1IP5#GP15$3eAtA?QGKP34DYmD>OZW6d+MrTk2IaS3E
zV)9Nzh6m2PxrFN{5Cx<_W>BN=z|ZU?35Pu9)GyRDrQ?VqU!=$PDPBKN+=Po`7`e)c
ziW~%$n7S&}YEh&lA~zOmsYC#jZa3e2^B)@;8eWl`guEfGoPD{EJo3mtRwD!S_rL%B
zN@V5ldCz+;`s!D|`dfM2C6`>Xd+OAwkI~pa|M}0KtQIRTCF^rIj41cYpKkh4S(3wL
z9?FkLdd_giC??BuD807WjL_lUZzZ<n@23xVw6UYDpMU=O`x#iS`sO#k`8Nizxk5?Z
z-Q8<{^{Zd4ec*uydgsrd|I5=(JMFOxF1X<3Q%*UhXQ&L&q28NZEQwAA+)qt<aXVVP
zo_Xe(#Tz$nJZt;*?eAxk$qF1pjR^8BX+xdl_(N}LcA#mB3sa^62U5;_h0hxsKWDRE
zg9qDSlZu&!-rg<->?YgZ3O#d=hcjj#f<S*iW8>uV!2Y3L<wcWGV1upqwYZ!SCt@xP
z^mxAWI>t{fT@Z%jrUoGt_4M@wvdXZpm&+w^O%aGRTtA!Bc6?@y?~%(lt`E{w3Yh%j
zxstnvUxGIv5}3dl+<TO}R)kg2m3`_`vXK@LQcFr`;P_$D02##dQ~4!u&wWp^*pyP)
z_)y~_k%;~2Pk;Ko|MqYHwrwcCIj!&CzyCuUHf;F9k|j%e$_aGlZ)fM_1@C<4JFjGu
z%A-Sp-@=6pf5)z9-!3%%Yc_4#^s$ppI;pQ#+WA-oLphk|gHWMhT?mMm3gnd-TT37>
z2fT+`zwp8fcQf{L%GbX3wLc;=r~SAvplsQ>bLVGpdGNspfwB1Z*4EbNr%ju-o`L*p
z3~&v0@^bC{_~Vc7o-=1o62Y3f+Ox|~ZQZ(cGx4?9c9mVWE@UVD;;yc)QyA-C!5H~s
z`SO{bH&l{H{*^#LbKsJ*RJitnAS_v=Lk9z+$6q(#Nw%aJ3S*}qo&aQdt<!M9!#g$u
zYAXu^43W(&8=IO41MwNKVqrbBq}myXJ2}b1VaG8UQ@0pu_OW%W7t`OtFsoaEvzv5S
zGKqnBguQPDe!9u79N2qG+a@&CGjMfOPo5Ad^~ucOu0IIma#9avl)A28Kug#BQn(br
zR3vL70li`Sl@YUsA9Up&b#Y0|C3ML(L&xGpy&3=}r+m%a5tbNgraTDHr5fjh>Yd~F
zl}OBT3Y1X_1^272x@!AF4?Xmaty{N#kpNxJ3Kj1`XIGS0-+ue;cUDqrS-yPv!~gV8
z|McW=<JdXBk&%(y<3}HT^o+%e7e8K0X{D9{&|#VRSl|CYAotf-ty<N7*Ijq5`qG!a
z^sOB`c6^dvFTc7V1NZ429Ua%;!kAFOKhEJ8m0XH;C=J~a*)=l5pFPoqYtPl-UFU_M
zb)pJtNa5^zZi5QfUlfMR&JMvnk7eM+ErwS^+%sWtL_<FUFHptM%yvzPC;J(Invh8w
zY~q;+C(b_+7B=h$Et%pSiBLmFaI$O#dXp|3X$P2;QsLtI07P~6*`@G3DZHqP!Xt<(
zB-l(q&JrFd0;yV|;*|uDdpxKjnTJ<Kw0!og=2;4<!7~E1s`w3{9f@(9QsFIIG|F&<
ztfCOP7FQpNm<;&UMxEp}H@v=cyr`83ifS@oOIKM`9yeDKH<g-MsvU8p8@qD+`Zd>F
z^AGImaY6n$N$1Y`_3LkD<ltw~Xw<Hhs|A64B;cGkZ{A^fA7kd{vAf5sWm6mvj+QYG
zfR<9DWi&9VcCfS38K9%BW9OmEFTeaxj6pxSef##c?1wWUzb7lPBDybU8EUeSPaZj-
zIkVY;D^3Ua(&Z}LbY%d}TC71+qY8nr3VM(+<Dkk|I6Dqo8tPRzXGsVqx2W*aX47N1
z>fnaPkXy$q2Gs8}kWQKqON5}?o(_#uf)G^`lKoDBBdQH^69G6;(L6x31+Y1S_KF6e
zhZPG3!1k_e95)BRJQ#@$rnBC2bB!Wwzot38F96>!?n-5ILHbQ$1x8Eqlv7ZXYOhdQ
zKLI%&-;nB^+mcJBnO$wn?C`Td^`<6nPgK#Kh~Je6g32lVJorft7z%&_bUSO;-dk?)
zGyjJ95$vk)=@(vj;fA65|8f^lHj8@wV;G<;M`|f%8(w+-;SYcKob)@2U3=}d_Z=&?
z#Qb%3H9of1#PL?{wpJOSg=`;c{i7fK=ySjO-S3XO;)*LSLu;6vbtjLL!M)IBxZu}N
z<xc0e+Hmbk7k=?E4etGf4mZ9{gHvWHJX10hU;rM-HIV175tLMLJs_61pA~|yeY_DO
zjJaE)f*_7V`9%?x4?SlIx@WS`KhTZ3C+yyN1fJbc2ODB1L$a;~95zwdY?4@z4nni5
zL6Wibgvpky3j=W%;xV@Hdk50}HpDZwmoiUHDHzdZa|NXP0NVEh?A`&;b6AB~Oe&lu
zWDf*eUKP>s{p7i36B2k+DP5q}aZ<?u1ZhX;=PI#p!+R}suJAyp;Rir*Nj7-%kp+G!
z+(Ejz0PaEMaKSIN>(cp<$sAW`@Uz$e>HFUIzSmc*Sn<zP-IC5nIv4T$`u*>J{|!vJ
zFE-Fw>b9v<rzYk1+Sk{&w44BFrQ639Ym6u+0IH5h051fjj}{;==8GKZn8?yU``OPv
z%s~C5tFONLqWb#!*T^+8RGRf@g^uzUd4eGDX1C5MQ>Og#?Ptw;_{Sg7;M?!l;o8+2
z%$m#qoUw0o%3;tjh#8rBu2cvEX2sLQrFE{Cv-Kql1MuaKHuCY@;-`5)FHZo95T5Zp
z#2CVMbhN|1y$4~_))+jqbrx*TE(9Z7$5Z$bCQJrj496kP06oqCGL~YX&VW2N;PR#4
zaCyxX?nO@l^!IqKmz@m6^|S_8E~<mK%!zQoRi%=-)PYE@aHxXc1S6pN0Zmi%{IqS~
zH;$74ZOc(+*Pk%J8C+Ud*51?g9+)fiG%R@_EQcWO<<3H`tP{zShiT4XZ&<B_&wQwJ
z_PgKx?(MCut&hooE)xp|rsv*u*Ig@W)dMsX3fc1Cz^)Fa=T9a>{pN~sqm%>Ug%Z6|
zYMLu|+;K;K;9^WX<VR~Ne<2?7V%G~D_w2LJ&U)&pr`BxSw(a6WhYr1GsE$2D1uci0
zXq%gxUzj#++LMbGEqZpzk|mpF%$RW`*3;HFsqNo-Lz<%nbOdo1q729z8Iad879K$`
zu47;xWxp4;9YU&S<p_92ZS4Q)HMdmw!hwmspC|vGg<J25bMQvl!M6Nn$Rtt7sqVV2
zK{yhDmZoNy*g6p=G&R72DKVH8I0PXx#XCl84qF&1>I?#Pc8{z#5CqsV+XOS>a^~H~
zfIQv{(4wnw_Vgeunyf=GtiWNzhCg+r0JG*1vBOduIC>A7@SVGP{&BfI9j-e<rlA_;
z6i}r;qx4*2?uwipD#kZ;16=t#fM&LiZ>eG8L<rBC#fxsC)Pf(WB3wu=yBxAnX3?;M
zq}Q6y#7UV=07fPQ*)M#d(Va0PUTLX?ZtVP<aQ*eyzr=uZp=?(rvcZVR^MCx~AI}X0
z0#3O;^Fp?<tA#;3o__ji9bGs_o1>)=FZ$cw_O_9&iN&~8im?$^tMSBm34m70o+y7|
zBiTgPtXXrAEx%%`zv}Ah`tYCr^rurcZ{ED3x3_m5TTV`;QZtju<Vo^(!vOnvUDuP*
zX!Jl+Q`7$0vuAIdIdkTIcAV`kEiD-lROO!Yj*bp+j@)x^Kyfrx74=XUK%=A*WT1}B
zl#*_!7K$_E2_aMf$7}Y0tLH8Y!QVC-@Z5$hRdCJSY|*TN=p^qD#Ly7E@1~K3cp{E}
z2c(iMu&?nXnAhA7GxS3cwo{y4qf~B+MbCJdphq%jVPq2!djsb+>ad6{K{grjY*LH;
zO{$wq{z3UCY5A%8lx}Z26s+}R7fk?mR@78CY~M3ZDf_a{u84&uDPC(`DknfP6Rr=`
z`#y92(J@eV2l*GZL5>#mncK1lU0y$YxW%15Jzj~x=TPGoE?hY9g)e*oecyPs*g#%$
zA{G7p{j0z8o$p+D%PqJ3u~NxHg}!HYuE!C`tKnc7Z;qCdt%+mdWEsyuUXAsUKs|ro
zq)C%9ANarrUS{hr55@51%isLVVe*;db{fwn0tTLkT3W0F?@+v+2s!<m5kpT0SJB7q
zdeTIG99r&ZhJdDdy0OE-90PL-y#L||yt>n1!01s`{A&V=6bwc1L~wPz=K;?|H5rQ?
zV9!ZGf2<!SwlqT`-VFOEoD4JSVlX4n4)s<{*!{d(Ey*?ox*3$6(V)SidKGlsmc&FO
zl#1Ax4Et<#%v@xz74lw-igj^77xIf^`;rN=a0GPT-&3UJ$J2gwL;`eT;M6<RcKx*f
zT)R2}*i>5A6@PCg%*JPgLX*w<E#v@v?VNOKx$6*V=Ln|w#r5=HzQX=$xLPDT?cP0m
z_FRYwZZf8jcK-0g5C8Q2?|=XC>}oGnj?a8F;Oy+|49nXYVfou=O!sIFhK`stG!|CG
zLXv{Y8FRD(d8wd2+Eo+*xBPd|I{xSg<S`>O(f+dsXL!wQJZ)Pra}MO1-(6mjDR^Ek
zOD>I_p%?;`C77wf*ziCi0LxEqfOVUbjIrCElSC*q2!^OPqfEjxFCD+02`?{@#j?2!
z*v%xwVtvrWn0lNo?G1}yV$^_X+F_VzcQE$sz<fo6lbRIHTv8d&E3UH%#6SSg;v}VT
z2Tp%KdmZ+A$k<gOsW`5m6>3<%x12Yx5H1yr8w|vSM3mR4f>Qsf>yYF6zIId4ZjxAZ
z(ItcWhxRd!J1HaBIRZKRPN-J7Cj9^Sm>*yC{&a;^QEu$a{;<|ULAjhUH{5W;U-$0a
zd)-q{J#{zL>7nzGolnylbN|dwe)5xVR3dq3xN)&qEFeFgHf`EVBLQzMSbDYB3ufkH
z0pOKl>&F6+7n_+o8pso1%fO8~Cv{q<49@=e?v^IA^ISzkkoP1Oje?cP(lwO<j>|zS
zXL*(+1jj~w+~q)IFj{^j)dbzC3DBErfc|tn#F8q+;{$Bl5vZ^0fTTMBR8GnfsqE;C
zp{jx|6|&N$MiLAevl)ZecS&cG46}OCG6#K4P0-Uc6Y9cqV2aiWt<cFPfw)(WRwU)9
zrU<wqurunfXIw~hvlj`w5DE^ihNz3ctSu%JT({(&o`%TwbbWB=!8gmhqOqh>y15^t
zGdR)66@gXD@vlk-7??X<em_uGBoC>w*F1mrbVW}*O8rMb9~hWcEk>SyyY<#v@A=S&
zJ~VgJrcGZV{hZFb4I4Im{pUab`C}ja;0Ir+mQ8W@?%l2OzGcgnJ$fv%@|rXAa`g0a
zB$Z0C^hyAEp*naq*}1%3zNhW@V<SLMr_<2Z_S+kmsESGj`ZNycF0Ubu_p0J++9F5C
zD-|m=<31w{ZN?<%$}~Z5b^>F$4mt}Um5M=U*H#9+eGGt256~<RARX7oJKpY1`0UW#
z!n^p0lCzSDBR3eCI$lj+GmChv7kc~Zp{bF*c0(gHHcW;3pbeAU4rsADAz~#t7;;dz
z{LX73LxIC_H&@~|n-PVt(6tj~OT?SZ!13#`Xrd*a;`*_Hj0w392Q7!ZjhrYW5Y+vE
zC`mVtu&fYkCt0Rf=;qYd!eM`(Vw#cxesF^dS8P-Atg1>nJ+WA=xg21>^Ugc}zmI(6
zBcZKZw|-teNAVoH>#n;VTD^Mp$@AyWk5?o3$-sQ3te0PT<&`gwq%)5PRz93`QVc5}
z#LP?8#z(rOueIz_X_j6oATKt!SuJ*+AEX`X#K0e%VPw=`dgqO#g>$e&Hm-WLPBb;I
ziw|aHVtPCTVXrk64%*WoZiTp4Jf7%>uI|?v$i^5zx?E@G$uYudqT61;lQT_0Ds5qF
zv~9n$y{-Cysk(kQAs{J35p}%T!4s(jq_Zgo>irOnM$k>cmPY8QZ-H=l1~k<h&}{WU
zgV_rWR$s1Oc_Vw#T?}H9DS#;Zn~rN?OOwh0{7*+LkNAeXx-ygzitpVL<q71hP{sAx
zxUKlsLuzQD3XNP7EZqTLexaaif1Mu$wM7sVCtOuDr*P<dCaFcz%@zNoz{+Iv-3q1j
z7t-64fvEG-pZ@fVjG>2i?AY-cO$2N4y=F3**`NLFXMc9@z4yKcGeavK{M@{G^D0_j
zym;|#lP6Ekj8|4(h!$Ry%u<ZrTFADsl3mJS>BId!l?L*1LA_GiIms&WcGA-EcBFUR
z@ePjEtmrClAgq$JP%v0c@z9Cuw`}bYOoYAebm(@P8CYkbFSZ}LdJZs<GI-FFC)Oz3
z7Vaeo38c}5l}`~`I&b!Xj9BqK=&tQEXP#P5tlaT|oYVzP^@FcAqt|H$ex{j$L^1}w
z{ap}^M4_R+9%2mGyP{1D*r!1_sz9UN4|PU2Os-GCxq$>s(=BKe-7olLA|@G&8d5mE
zd_t3*V^JkY5jhZ76G0)#<YX4bpNJHfvNipDAvt&)Z<K%>H?vtp5y?XiHFuVhhE(x=
zQZf<MHCI!qd9{*RBv$M&hW^>>uDh;o@7}%F%a++ghYnryiBEiD@7;IbeM=>SpXevw
zwr$&o1SzpT_`whUxDvt7T7h`EfUcJUyyK-7OC?x(xr}`{Ii->|#8QEKsIj@AndAk=
z#{}@Gqj&XfSarOr<l3lt+A@woV0UwFjf3iB*b$ixeGp<`mV(2bFG408;}$)VXV3}5
zr3j%ZtD2Bbz;}3X7faA%<{8(st81bd76Ld<0*>Rea`I>A{OD58PZ#`vtfG+qY(qMg
z=D;3{_d|DYkO6xb>gwv)eLaN2Q3wX70JpiQ7NnIlv}gu2x+$o);_UL(f*H+?5Vup1
zF+7G2;_t)kS861kE86Aye=qeIr8+ERM})!kuyWpXxm!`JPLf!Jqs2B&&?qn=>rIp|
zAgB7n;4IKu$t-k3=6%;)cir&e4}Tc;?Add@91vv;`tvv5cw@)+zyJN)Di!=>lgD|9
zL}DSXpLpVl-#zQBvks5fhR)?US4Ndt#%lnyl9EcX?7LDdyc(ch4#?*_S!h23I@g_(
z2hXbq0p>zdQNfp1+SL}=8J-IXH2}#}A9VM>0<M+eK5SkEQGgSIFfnLk;kL*rqC!)y
z=>a#FAw)+WJ>VzK;3Q&-VpqHko8p(S<+6hAJ4)n0Y_2sNHKI_-tIj4Q)dnM*=1U?m
z0D%A|4PkH107Te*AQ*vcT|FcMEf5Mt*n3bx%l1OZ?qL%F+5nTH->4U$#Vk*1N2jWT
zgPbVO5PP?T1BM(gikN&HD$eEl>(sR<gB5He0QG6{nPUBRbhL=rh9Y+yB8`SF6{K@Q
zF^mN+W<lz@Q*B2}{(c1XU;gr!A7jA1@0C|x`MM0~>(;INj}Ls{1GE40KmYS{nBiQG
z%)%y%hX4KF|NReK4~0VQpZ)A-|9!l$@@iNShb**p;e{6-HN~{XYgeIa6xu3v+-PHm
z`!UcxCJP<fbKk#D2dh;RDfk$`3kAGL;MTeYutT2;Nh=2J9j`$w)y|&lp(_U=$FueY
z1tZVN5vmW+R2o)Oec1u`>A7+M-g^t`zLtywXul?ExzKiA-$nJy>f*M5aH^2xK|Xm^
zg<Js>hdbVFo+;_N8OUZC^UfsMeT+>~1CU7dLnhr1F}7_WndHU4Q1oyeAGi@#c|1WI
z4B~X9!2SCo*+^6UZbXh;wbAyCovwW4!R}{v0!&GI#kR2MmWEx2*rKqRL=jzwKrnJw
z0&-q-i)!pxmTI1S@@-CIW42N<OQHI?kUZQ=F1h5nwzjtIJ9qB9T0S?sySvYN{PD+^
z&7C{<sTnh7BubH4um=ApKl#Z=`uqFO#K#}|*vHOgw|&I~JFCIUtL-hv^@R%;R-T!U
zbgNWZ+mTp$Eq&&-uqqb9)JtLKay@L?Cnpf$ddSJnq)Zl%k-N|poeFJ@Ga+qfp||&S
zwk^g%N@l|x)Pzff1G^xqy6$`FFnEYbM?45BGW~hOA5E$uCBP9u4)<a3lTzVHYOy8n
zxh)zxkf&W&eC?Sg3{{1kY~%{$#7WAPk|lWtrDHM>H$i2<?oB=_mzNY#Mau=>a$~#x
zRSVe`RVg593jLhR?*YG3qbpU3#P?2rD*-(}u8?GUu;5mQubVrf9Ikg6<9p313zP>z
zmBG$`F0~vv(gHJQ4pc*CDHPcM<zN2g*R8Fshkx~}U;PRDbdrYN(a~|qKmYST?>_tN
zv;XO)n{N6A1}zH(^?UBQ=d9oS<~Kj4y8mm|thxT(?|%1&O0e+pYEdkxp80SfJW>F(
zTphho2g`Wznb*>DUa5T}eMb4~xYU6iMRlAvXV3%CHgPh<7;f}*y~^1uPlG4cr9h6A
zgJ9vRXjq)H6b5}CHro6wVMXMG-t{^UxsLC0QKb4N2!x1P=*Uw8p8UXN7R~o+i&!PM
z8Ipb;pb3C3K~=xht}3n&Tq)tn5y;1rqeRftE6MAb({lwTRqu+y7MP9`0ww(rda8=w
z4BDc}#q}p1{9FU7-;}};g|}=mM)dFC5>j`AubFcK&t^mPn!7?bcgVStSJcUK)JTQ5
zdU`N%Xm71$mi&Dm|M<tBnLT^<Y2W|;_a8=mTOuHl=bwN6$1lG4;<x9|pZ|-sYuEmK
z`t<4DD_5>OM0Hg*Y}hcVudgr4n0PB2cgc<&J3f#~r54cfPdMR(?|t>FU%k7M0Dd$9
zx?WC8xUo(gs<qF&mOx&rdu61cXZ~YcFjJ2zF4F$6XJCONjQVag5@7C2@N7(%0(-(;
zLJ|iuO9W{QVn!mq1cJbex-v-&<k*N{dp5?sFgeGPI@fd2loD|)ZxYA|B8tzUVpasK
zwp2Tumn#Vhf4U~JM!}af6vfx63A72tT_O4KNy8>-z&{pBHpH@n0l(fkIa@&J+^+D(
zXI)>z52$`449fDP=FzTbH)jePqa%QvJ}7)_Om6wB3B9Xwu9kG#ySx#;a@m?_3y-;y
zR}PmiJv}qn-OIIfv<$cZl1nbxxqSKZC7=7;=e~`NS7hrfI}aOn?b`K8TnY*L(e0#@
zPWr~}x8MF{UBm^7alsr-AU+bH*DL^9slaC`z+4G?Vy%I^n(SQml*^2qf}onKT9(3a
z##Z2LEx@Y^MjHVdgPxa}pEL}}+OVECL#6~nox^DdI%5v>^|%}qLtzHS5iijOL?9J^
zWdR{Wpwt3FU&oYs9xSzeMosDPI6)8#=Q_6-=ZM~GG!c*ntw}aNMc5ky0%#opx+D$p
zc}??!j=XoL?w6gV#?uzbDN+donT6Y8Lg4l|$1gg@Er~GLvS<qiPPJ&L9t%w@j?mB*
zp~)|~;Q#!i^Z55R*p8!<%!0{77!1{N#nq*n=AvTPpgJuGl=1kCv2e5uw;iRFd+xdC
zQw)Ir=b?ul`Ze{t9j?)ZOhEFFi8a-~^PTV9He8MNV;Rs(wkB2+z$>AfSIeF_9)Y}4
z7DYMDKNl5O6eqxtWC}x+Fhj=(L&JIos&yeR3sc9IY(WKPq1?i#r4ztHRVoMCIKz^T
zqzxMno3Ojrg2aH!>zy<-ie}EP=mQFV;VN!lv_0{h8(U0a;d6ZbnLAoE;R+EMm9|K_
zv31GPC!`hC@tq}9>qG|fpzinfR0JqfX<A3fJN!KecCQK0#}s{C^Ccur>hGZmz26ja
zPe5q@8FO$ULsN8GqUO-FFXwI%+WE}sCx7FVGq2nfYq;w*dtl&nl3I9!XROsCypCi;
z%y}OP6zP1$&m)nTSIfkqLigQx<BgB6T)A@5_rCYNf8V!n-*trs?(x>x*!bFqKJ=mY
zz4M*#+*C~PvKE%au>ka{20+JBH?NdEajby6)F5cNY~2GT70dGl2@S~s=LP$`IxPsm
zdcXs69;HNJXK04?%_mI=z~Y%f$TCFR)?vZl_hq3cW^tAt4te%N(!@z?$6lZ+Rag{O
zJp^h)NG`~HBO(EZ*A!>lqIKSQ1WPAZgiGk~;JZRpvMD+ekp*A=2}qLxRc<6^Ou<r{
zBp1~$nuQ*7SEO^=wqGyB1z!WFx-8^DcZExb`i5#kR|i)rm&?aQcVGREuY8^V0aK>D
zh+v-U2}%_dd5b*XZ_dFRq;_&bPgguJKdu-iUI~4?(0yl|aYpC8_ul*A`|rR1`@j9|
zZ@<#s-hP$L((`47a5#Km`SRuecGFEa{j#~a*{B47R|?R_ij^14%nP}VMe2Sn9W3Lq
zz*Zspc%eW}-G;bssp@HlEK$EWtDk^F>HJ(XM|O*lk4-3aMMNusH>7Y>g?q}+m>-0t
z^FpxUU>2U=mqKG-j`f15>4Ly%2{vp|rYSXqpmcrR*OIZr5pPe2+Oy&{lCY$1J(e>#
z<v%2(5L--0IaaJmY~6SDc>zk@ZwZG0PDQm)C(nuuR7XfR)T{zOlPr1Qg}%-mEE0pK
ziGa!hn6_V!#g~WF^o8et=AsFWQ&arhn=xa9y<>-;4T@lnmoNB7W6Xn3Sdz?wO}Rl%
zp28!hPb^htsTNz$-+s+C*SyY_s~>;-@p(@?@x<G9?%a80cX#(1UDwkLv|pYyY0@hU
z_#e6U+G}5;8s){<4XY`;j2oGy(m*{HfzN6?SPIqC$0Iv0l#%E9f+|{Cio;3I@fkV?
zC&8#Wfa`*mYTh<(HRM^O3YS(EObx)Hj0W9l8%)#XQj00FJ1G^P*sDf>=lK3`sw7Af
zh$8}@n&Ru}#Ku(_)JbMh{VIcw<Llq9_`8A<lgG)$5V8&hNJ&dKgtG;G_XymI@S2mK
zo~)T<H>Bp(+!<tf6&0y_5oM9uw*R-|WU=IwE8ex_<hSpn7)D^hf-Uw_Px<!5beikt
zx!UHEJrP9R7T(~Qm^yy1nao1SWHdLgty-<!EQM@;>s#NtckSA>ce2$xN6U+-HGq#N
z5U*JPw3JDqoWN(PEPcENJ}X&ZtB}Vzi3LGG4Gp+TYNn{e=Qp93hPsOH4Dqk!{dIbG
z17;NVrCQ-&QU^QO10lPMy>`N5yaDgPrl=q&r}u}5ZQGJ|ZFvqDl2UBpP~mQupvRyy
zrtbt%Z6S}iQUFyXFcEu(oCVRFSm+iI2}_#p6JCW}FhWAn#G6HZJ|G-4wp4$GUQ4d@
zm@>p9rT8{Q{`zA7vXig8{Gzp=ek2g^%W?;oFW;H`+0Xo<TWC#0FvrFem=&t)gZh7h
zkXq#L7QN@{!GkT<f(2c*^p=+!EG>20o59Ue)c|O@vP-QiB_8cEOEuWKcUDBY!0eMw
z9zR7M22pmGGjBJSd86dU#>^0G%glm)rvWT81^w}DkjnJuSg|W*Lh7OqD3udb1w)Ps
zrwd46>Im@G6{$d%c-w{mWYzVLr4R@UE2AxCS8Cw<zo{alA_{(SR!>(3s>i}}!BlN<
z-%gt7T%oNiA|Wa53@+81^S{I3Kqv4TFM-}Omi)t2Z(043r}O0l{p6E-AR66mrBVxW
zt>j2I&lSN@d{(ZigPknmUhC+XB!hXS^z%wPUB(N5A9Ze)Qki)zb@NKpU@126S;?NB
zW8GzFG<Htg$ZM|Zbw_BIOH7*pox3C4!JtlH<#=A_UFpeenFNMoKs^33#8dIy80uK0
zh`Qgp>N9^;X!0Ps@L0l{$g36Vp8P_Et9V^-p{?7RFT+?;yS4!M^~Oyhn~<y%qSv*X
z|2!dh+55BhmbV!8p^FTw^D4)+>$#jG?3BDjfzZRL7P%uDJOlaKNg5J=rzI8N;y!hu
zo7;}Rk53eA{DcV$ethZMZ@Fda<l_cNT6u$obo%r^Tf27MKsCBhH+MuEIhVj&_Lo!J
zHt9Q8J33~w<8B!XnWfmtpqzqRW94QUbD5=>>WGyB?s5X3wd(a*ibg(Cz3}nSWoRTe
zF0(;BG+}>EUJ)IbU67tfnUk&$SiEGb6NL5Y88F}k7!%(E$@CF+e9w0dUTiey$3`$j
zXA2KR3dsc%l2BL1^!<PUN}k~v@b&eul=+D%{0QdgpuvJysMRCrl1`qhc_K+Vw&Rzu
z#ruZvY2R&(%;^M}b3Yq#zoskK#WSy;mNIs)PNxsAwVbZYT}gKj2vB#Wlzy@_Qr93|
z^^<~dJ4!2xH2KlQqlY2~R-S(CKb*bd{p&^oE?(tw&YX1)19KDn+U8!>E@v?H&+9hi
z$|_h-&w^T~@K+kVk9C=4xP1l7EW?3pEtvOs?)6zLs22;a<56Zo78ndq-2r)uiks`C
z<4URPiU;Iu^{`b3ub9&q8@HinU^4^hRL;X4()^Tkst8Egl^lo-5wsMAvO=OffFWAD
zDFR3_BQ%+ToXJKL!B$(8*5$0;_U(wS)D4Mje;QdJIq>RzO_7yP<KN7arO*YUC{Ane
z%niDJHe2)`*iKfDrCwjupV)JHI(y(PS)+HgYo_OuA)N>@fj!=nBtuOzqCxL(bcNlr
zu72_#kDs^t2dkF9`|0|+)(n*-rZU7>Tb>#^kpDk$>Z$9kC!XMc9tU&`f?|O%(a>3u
zt0t1<B3TnT<L~c3saU|SRnYUzF0&L1;x*|3S_=4A+n!je^irzKQb|y+gv?URV_ZUY
zvv<lw&ui!A=1R2EJ`j(0SxxYo-O4~Z4YA}-uknQ{WDX%`SVEQ{*@n6masRk*v?D7I
z2=BG+_$6eylo1rRKLOw&&2Ldhz{%^ch-4lv-zXA@Ykn4{Bbae0Fz3#2xWS;mpMs9m
zyAtnp(5-3Fb2d(EJ!c~W_n+f-)9$Yui0_`>8{2n$Jb7@5V`rLDnZDB;-Z#_^8`<79
z__stt%`fPho($^sdnQMkch8u1$_vNMJ$uuXNekln!DssH^NXO-ePHFvJ=xoC%LPIC
z$B)^dq9>@__meO99Y`I15a6|R`h;?{@3EFyDh2XKL!*i@>j7FSfY(YduV#&wVnMyy
z?7R~0mQcg-yR+cCQsmkqa@9Ws`M<l9VUN)WhS3ReEQgD-isl71Eh#NMph(t2-4A>c
zOLr-FDLH3QPqs~O9Lgt-U?04L55wJ5TDU;O4yuZ%Dn9eqg!E!qk_AxM4JSlSeJF&c
zbphb=)rnx~Zvc6`MfBF>gof!mXHP$8CmZ`m`E#eSx~OPK;LIlmT_09%#Qj4t@?3`Q
zv}q}K!h}~Sd5D6b*m;Pvb9QVF-lmssDg(J9YPYEA^wLWC%8zxKWvl?bB0WHBRpPc7
z*<~zbmTEatN@eHO*2{+qf+~@z9g3udyZoQxw`k)`TY(p0G90p^48#wBY4v&T5s^rP
zS(*sAl=e=(YRuxKuJo4Umw<JId&Ci}+pzrdxm4$bYP6_gGSEb6U4HKlPQXEl2AMrt
z9Ftj5mRDFOZJy4rC7SBac$HW<eRlLX=eY;pe@_5UfJ^r@Mt&|$3Nly^7muPEIirH-
ztXYq_5}5NKD0Uvg<506y*YDE7?TI2d%3sHETJ*NI3D%4m17n>DS}u4W3o=VNAYO27
zmP$BPO4Y)vVL_~v^iqf<QwXS!XPL$Jilx|=qS`^Mwj!}{PansI4l2B$Oolcm49Vmn
z2DAg5Rde<&f}==KZBb>Bv~bkCx#L9W?+CP};up=rL>x;1v8MYIfXLnPTq05;kSj7#
zby0UEg1w7Ve%BuiR%S$(BCP7D30BV~Aa&9s0lnUonYaw#GP}kxxK1EVz)Z3TjU#ZE
z_fcia{LfnMSTEPdq3yhJv-Dp0`#JH%=gdu;c(yFJ;3tz_(Jf-$_&O-Bi2klQSBqp(
z)c5Y4Wlo<yP)muWmiEM>O=hVS=#Lrz9qUZbY9<O*lARC5yvNGTQmMz5s;7glQJ-Vu
zj?0}bi1kkeTcHC&kc_u81|9P{>xdGzVFGd2@AO07Y}5AJxq)EHRFn#fc;T_}`IvsH
zh=dzWNGFOYm5Z-q3yUMB=|@9eMOXxR%&b&|w1Sg~W%(V5Txy#s_Sc1HKanr75TNIS
zxy-!tCsSD#k@w{T`B3`!Xg}KgeZh0idBu3}!9mGG=xX8iM0}1W^errtON^XS`^9?-
z96r1-<+_{3lar-fP(PLcy(~9Nr2?R}4t!QCQD{79<h9QJ%s(D?Rp_B!Fd3LTzFuxK
z)O|J31l<e-lgT3-$PrW>;S!;AcM$Rj6`cy`ewkQRc()OEP>SLHaUqd_aC=a>SzYzz
z6JAtN^Xjrt*C0&5L6?XvH1_(i=XT+mIf#isSQG=I^nfAUd|_?wYchBfSm*2KvdkiX
zKE$r&?eauGY(D=czus{BhTE?%S<;oRuitDZ5+~&VJ(cqO=2StE&0;(&ln0^JoYbO<
z_Z#f&T*=1%b}S{9v0~&$qdl=0nMED0)<Gfn`Spbh9Xr}{irqKVF^AhW((y)nPNC~V
z6#y#rm?OPLq5BGbJm|C0>kpAngu2G>3O2wly&e+De#jaz&))2M+PEqes^Xfu<<<7K
z1vAGaA6+VBMa8ptV+h)(c+b&Q-+h7;1-e~u!3iT2^b>RvhTm6|`he;IKj=y(51{RW
zxO$S$tV7{&m;<gXq0r=r+hlnK?=iSZ+hs{)s7Y3qVq|GWevOirS+o8ZuYg2V0B})i
zVeH%ysirPok_3Ys(D6&iHLDP^PoS^w!l3|eq~GXB<0`$ckl)cr+e#Tz=;P7$Rr0r9
z=yL~wc`3kM3V@e0cC>w!*fyR)y&RA)<uPZhp_Z-WA$J`GI)f3|&cHltCSf4e<4Gxw
z-*|!htJ&3ke;;GZF}9v$z?>E}$5p=(bFN62<d(4<-zy%}{Iq?#Cua(dF>Jrf5f7YF
z9T?S1=O<Q<fQ=0>5ZeNxMI0Unb^3;gVoj)9*deoS0%`*7T%!)L$eo$;fmsG;ZX*=W
z&)3F>V%sv%7Xs$`vSp7@;t&G5l}>X&S1=gr%_3g2=SYM*UGTC5D=MmD0@6+Mr0~X#
zbBY1%N&$B{KwT(#t2BUDieOb5#7nN4Sc;Bbs1{xgdt$lLOR4_yN(DX(eNHtW>ya6+
z0c_@4b26mCwr~Jq{rk8+&6`Jn-(0~I)eEBm1?qzA`B*Ix)9@L(8VsqqgGDrIP^7ee
z%gNcJy%uq%S3JuR)dO8AJ)XM{h3?K>D#EprHieWUoHT|olB1Sxn8cFV^9;Y_Y)G%$
zqH9q*A7FD5Q(o{<UYEV#`Fc79E{FR5hWlQNx#4REF24Ac?0xrHrt9kX=iw5J#lUWD
z1yvN?LUxYp=yp*=rw`d-)3|Qk4XKk(x}};DOQrPjqfs}nb&CIpZkF*-;&vpxyigZP
zv2K-80lSjH&Qi<XR!T3Yzb86j@p`-M&yZ!P04+e$zxxWLAk~?IWD203q3hhR0`uxs
zXpN}gGMe2GW{fZB8N=0pcdsyXw;0U6nodGe^*T=2mam)Zf-O_#xvlul6cA$&+#8~v
z&W(XmWdBi-V3aj{>mmrC&RV`KqX_n@iG)Z@I^xbfe*A{b`3@7=iINZSGQ%ED-=_UT
zIalzpWm&n`8S1ky^oD+OYsQQR%tMFXV+b&}`uad07yzxVj!mLL&djkHtBQfqfdMZF
ziW3e7W!VxreE9SAFTHece8q}QmC((PCMV0$qMMiGW+^oQS_*qF7Nl#P#$Rf{aws=T
zH3Og3uqEc79DxZ7w_&5<SCtGvT!9lAAS`TBpp}6(>ed>&R}guFUSkS{fw+o*9`Lp!
z6JMXz!3Z^j>ZBM;PUWf%21FpTG2#Jm*7m?!7uq+1E~Uh03}0sl(T|fJ6RYQCYQawu
zLPm~H4^R#bKF<)EB5#Hf9LNW30%dB@AqOwz{rNv6N)j3}h>Tz=WUFF;akQJhV#R+U
zn3L3Eveyap_JY&Y1S-laB8Z@b!(4t*v0N^)b7buJ-q`xYr=EJmm^}H6?A*Cs#k{Xt
z*%OZ@mOhq&(4qsN<?7|N2zZVMy}X(l`DmYMB_AUQ8ER8cQq|InOdZZ)Ah0l`K!h_?
zj|C%8qAwg-FtX*kuqSQcIyz3aI?Z6}6Tx-TkYzy5-7Nxu4WXk`Z%kbrPZI&qXxMv9
z?476Ii@u#)qZfs<6rr1gq?=PPl)eQF&f@d%{gDPA(1P*d5`z%LW$+#9v!}76>D#2Y
z4;OG84y;C70#{!7tfi`0Ta1G_2lTEku)Djt_nf;~@MA&njz+n&1p!?Zss9M(x^2&%
z^5BDy2M!%-9uE9!6%akzbn`-SqE;IEumR9gfV&uQu2#Uam@j*@$Z(|spOtp76dQaQ
z?IaoQF)_*jgM>OD)~@7&mZ|{YAp0+@BU4v6VB&p%EgOwS=y!A&NFHVkJIO(x8ap7i
zVGxp<7h6ID52${>%tTf=HNda!!h@HRtHqFdYT`tp3!vu}3fX;xvQI(S5k){%<MqiS
zeX`a~(#LS0lk94dwdZ`GmgN}w3`b*KBZ1|x@vEs*Q|<{T+-^!>&H=rn1Dw7-aL}$O
zEQu()sC9Mx5(PnBW7}2n_XG^%w5j*q_gr|}w&}%!cDVu3LbsRdWGU9cRf*qMCCOY#
zZkBR^yBOz6wOD$k*m)%!ES35a%ds9-!m`C{g=nEZYPyhX!hjtrMITV=J|EOw&w9w#
zUrW`&5i<bEbSDGq1ZUV36QpA}Qg<R-B>V7md&O^7L<PRkriicCAlQ1w_A4YhVsfF@
zajIbInm8`Ch0}CD3zf5dS21Pxh|JRE6nm6VXvt^tG)`vU@|dBRd!fvGw1vw%mtX!<
z1aM^M8F6nU5**NN3D9wtL+M2mK~eObYl6k;?0pAq`=lwq``xw)Pd>S-6wt0D8?O~3
zuk>%JoZoUK?2Kjk%uAJB-b}W{N;C3moO~ml+#HO84F?E>b5aKN0cA+3Dlz~ouq7RW
zy+#O9nE^-}F%HItMF8rtaD)1G3QM9+5{Re)t_q|<pe9C-4V%%H7|;5pM-)+7Rucei
ziB@hXtAGfof~d?$@6i>ViIAA)11<$8Wer@8uN1>D^A|^ysjcLqtzEm@nLGEV6a*zu
zHyD^(U0vV|40x%rqCX$EDrPbq(6N?_h93eJ|3X05w1(Do>t2}h-~at7#@^MjmRQD{
z-@MeZmGGXIC9{loy}VqeUCianSh4f5^qbQ*?yU~CY|PbV0f}7?>hkQ}wV66>%tjbM
zXV?{e4^Vk+V$dXW)CD2uQKukgRy3sui9ViqNCa?X`?${(y)`uf%(y?O`I(^H!4eXZ
zjO(|CLsri-Of|m*uP3#b(V@VbWD+@vXsGjs*ti@Jm9s*JS}JkNe=osLeBw)ns$%lK
z2jsLIH~=<k=>7d1(D~H|GV{7RuAOta1%Lb!plj@JZrHc)_L)EY;X~m)dnQ-gbAGhx
z=9Nm|tMvM)%zQlS<(0_vJXV0b+JR85e!<fqgSgPN9np2jODF<JI4V4sih{|gb}Ds*
z126ANujN{W=9)h{5|Haca<)a*C(0;P4!{=8k2RefD5Ay+_*tCPJQ<&Z8a}n4qiT$%
zD0^$z{%d<S$ZVsW@kz--`8s)i2Io-e`ITneg=S;&AMdHBcByOEeo&TMa-iPU#u>Ve
z)<kS#fq!c#<dwr^>|8~;MUsj5XTa`5vDoF)?z?Z-#0MUDFS7JEgKl1}jL=%kEZVu}
zo;z$ZL!tMDJh#v>#q6upw$a{aE!HcwuTqck$IXB+p>{s=X+Lm?OjqHo7zwSeE8Oz-
zgk29QMTdCuFfWFp2w>GzpPAz}WY3mh%~Z36)^*LVjOe<On?+m|=mNZR2||kJhN0u-
znmyYd`$y?U)gU+F@WPCw{kx&IDUFvsFr2M4pP|e4!qGmvTHmx)tF{==JTo6+vD1XI
z<b@*;uo-99Fbx(bE~x?}vUNp7j1|?dvEYgipMif!Z)<yJ<mH#oGAB-a(rj&w*V>v`
zZNK@k(&%~V(xrvVEaOctFGoW!cBUK;jJ%Q#mSQeFG08=5Sh&{`A1BpGv85&zxb1l}
z3cXGMV##g>B6hCNCb45jl4W=wPa$>G30Z_&1*u5|wX;+_?VDIUfS=Z{h)EzQ>YU@m
zf({pl$^qzJvJloVM~^zyMc2fYK!{g$%*-4qSAryz{8F~Xq`sHxCohGu2fy-_j~k7R
zuOK5&%lbJ3bK~Gaa2P{(6AA8Uq2|xX))i4fjeE~=K|nya3+n1@f3TzD?UU}jbN{3}
z?)a?Q-yc5Ob@O7KER}M$R1-_e@|lmdzr0$~OEoNtm5g-PD)33`2<8ZEhN>C9RxSd1
z0$8^=Vc5$S(~N^{r9IgLd|jJ3D>XuPC6@}O;q!o}7{s-0K@xSTIR({z;XZRw+XbJS
z%8E=+F(HIR!)6?BI(`{m4)~;-3+X4U$4+%!OO<P{jO0QY?gu*>E3br<Qpj;(#*C!)
zr7vBS2?pB<&`EO1rcz)sK(~(^0XrV&>HWyY-Au+yD8lNBR1Y0QrAhqmQHjU#eSLap
z-MVj2x#gDKO~3y2#q7jT$GXT?rL2gx41`w8<uatqQi}9Z%Gi<QmeKZAN>UjwGD|fi
zm`XgBw<Qlh^2vy8)q8eCg@ZEs%ljDm{!MQLtfZYxb$OK!B}tj=i*yxFoqk*)i72X{
z!AZBE?)L;WEuWENjdN9K<*rnC%MseVBXoBPe5#5M>@>MhGiQ`$9M=srgirlZP@kF{
z4LI|wBaYXbGG$82t*?L7e&v<x*dH5ErOA{R+d^h8Sh*`Ve<p)I0Ui3|8Q^2`5%l--
zQUPdlbO#0+w9T8}TmS5{YatkXB|Cq9N3A86QYDq~BC}LOa#^-)nGfb`)~p%%B&o7q
zUhKX?w^c$Lf3pKQ0$Jk7pWhv|($h%?=Q=i9c`?!e4nxNz_WcCkJwic7MFMUId<&uL
z`fOYg3|`gzYKO?E!(w8<z-3T?wkuUoRK?_=koK;5izQqyD)^m-s4plr#&ATNI$fRq
zoBGg6?egDTEf-470R4m$x@^mO*4e!IL&{*Y5w}OGu~@Fs8G<&ibs#dX++6))muHZ=
z*en{o>WsZpl|~z{*kZBS!IxgTA@cn5v+e2AU$&-BO^ip~{LKRBgTVZpbIvI#&{+)F
zk43<9Bp@sWc;5^_p8pu-hk@?DuB^-UEm4Fm5CMBreH2o`5TvtR3{34@EpaN4rHWuB
zmA=J=8dTuA4ZiPN6+Jn*Zte^YY^sW%<tf`EX(FIDbGVMOj4J%(___$}IT=Sx1f-pN
zB?+3IX^yVmSV_>X2KX1Ny(_1kcECD(c)PQ2-_<S*{>;2ftt4**jb(9NQNtK(xgcA2
zsnjn%PgGsR^19TfPF~ztY-#A}r#~Isvc)hLE!yDJ*PGP>^<%k(T)BWgBr~tHgi<Lc
zJ{B@dsh~erKwb>nF6KGt!H&hYwbm#0Uq*GvJEKA9sIP;Jkz{NyolB9YnkkCJx&ykj
z&GiAFfLWCSpt|b!0>$AxQ0e&05|7ak@jyFQJ<;_8td5XrNPcl#U$1vXw<1SmnR3SN
zhIckc-}aZW2J32oy}EMcCUei8BW_#UJ0PE-^GLJ_P9njzamM5!cKq>QN;fq<8A_#=
zvg1X_*}^54befN`B_Pi+b^NwEI^G)k^PjKRJ3987r=GgQ)pfUAP#^22&b4;0lmqCe
zpMLtt%)HVJyxJ_i7$B>)%u>p+N&)Li$SV1dk(sBAWHQ?O_fPSba0~@^wKQ-Rm&){b
znzvxsn&z``UC0}96jYah9W`+flR!}T$T6j#q?mw^Sjg?7i2_;(;v@#+VNC({j*xhG
zM<XG(&;+83=edqAxo|t9V#CDfmG>M?z+DW$t83Q0V(i$_>l{9O5ixW}0(Ablp}U2F
zdLSNO)qcSRpW3^2?UxzA|5Zz+CTXU596iUydg*y!Zux+Yb!h5f&z@_7k3DvYV%r<6
z#f#g=QevqF$k(zbXfe+j1m>$(uPz$6$D3YWj<38_nWdEN<IQhA+88`pLgCh!b@-28
zMhxB25(G=hKs?zuNK(<H^n1$61i^?oh=WwFR`Z=H99Z1JU4;Sy%x$56^FxUV0$nT=
z+~g99NY|(R_#QKsx1Ww_Ilj~o3CQ|+W_Dxfyl-oYCl4IW;62<;JMX-|ncKI=+{1_8
zE-rd<1<XXtRSwD!j|Up|?!CN!`SPE2pK{9PjwMU(9hf)ocExdCW#FzrBC(jarjr3&
z9E%qI*f6HM8#i9BKl$WxXlQuJnKP%a9FQ&-=#RGA=JMl0x4(gzR~o>_S}(68kXHiK
z$0Lvz`getbQ73Wu4`1pGf!1auU?65fDg}^AFyKsj_eosh+{wltr_u~CGwcU$ct3PZ
zFw#h35x^c0srtFe!13KM6s#n2kCKW->{@8-6g+iBeRR*IA~bl>a}>So1pKaOIfu`|
zq#|qt?K+Xi8p5X@7;idxrSx+?5uSJ6I%D6yHuun>%WR3EyAmLC<~}emVZx3bOM6$Z
zzTXW59J9VY6I-}&Q_reZ4<uHs_z(71zNlog2{)OX=QvIz_dMyCIZ#ifPJowQx>5Pt
z-&$ePq*vV{f}}@VAhcEteYovsoN>lrW?pFqUQH%G9xRBJ0`E#N_i6(>o;029|MRhg
zk!}d26{urGt(9@Sg%J(rgxC@mOH_kd5gmeTU!$r)lr7ne!T}zE9&0{vZC#||^8lyl
z>*={mgd;^HC1KJ~PNh+N4O~(E3{egsjyEY_+d0m}MbH!NjF>pY9W^BH1O|643TXQF
z38A;VaJ1^>g@U}gdi8qa@Zs(D{{2_Gl0;$&05$|5tG&I)HSFFU>^=9~L9qn8p}|Nk
zUAiN6;e`)p-u13q)s~iDLn!nzyL?K!@%SnEua{%&{rxN8x#vF3*t!A>7OaN}6O6Ht
zSSk(RW1)=?2ktVME4SQoOVQeQE%fs7%Fd7VRQ{p19eVxKf18`_U#^LU%LtTVY(x=K
zc_Rw!Iz(NDkS4qQ-qS~1O@S0c&d#(ATN$NSgD!8hOl%H;w?6FEVId8k((V;WS4WVi
zy5s>-0vDZi2;}$}kAdA9a7<7n9hsu}g(5OX5x}tvk!y>JjnMGQ@e_Y}#<8TAj|6DO
zPkwSSJo@M#g09Oig7Crx)h=AeFh)RZi(hcTHAil^;Wq^xyT3oEJoC&+uw~0CW%urP
zIemTS4h8I>X>s@T)Bjn!?z($n;>1j;pkB*B=+ThUf5Qzo_{{w5v(GMCIw^)_*NTZB
zO?6ntD<dCLW?^XE)BXI4CUamJ?&XO?x>utmgmqd1I7Z=1P%PM>BEaskFDPFaz#nAj
znFg$N!pn5!G?b7iZ)@3p?g}|!a&|@4cdlSJBdohZ>>9^5*Lf_QG;&ku=86<3r64HD
zF5X08OpoYi+#b+cGSvdrVkU-4w3Hi>p)Xsu)6uj?(_6N@+i~5H1Ab7`mSmFP-o014
z(dZvCC!EkR>U#}`ZFk|qBkt<eFT0mr_H$Uh`a4Qp-6L)=xY@-t;#BGcQS&9_wzXYm
z{rS(=xjj8QmBov9L!R^HXs^*yD~2wwFJHcVFqqehfmg~eUMZPnycgFh6nLv)O_Uui
z9Rr)2Thnb<dI3)?2JQiRIG}K59_GNUau7$Bt}({0v3-~onqi#p_4E|TD)o>xG0{Bj
z$tyx;3Fy8CPRTz2QpsKLf}!Mk;pK1z!>06q%kt~SfM_r03MNhx4(aANX<(o>q*I9k
z?b*7(={v`>R$fWa*A_2sSEfz-b#ndsciFbxfJZVV$wdIV8rr=1Ds$1IUs#hSrHXn#
z4GpGy^2rBb&6;)aj(6PWUV7=*l&Mqig}S=u*vZr8rqi?S?b|<PKmPdTZYs4|J^ADV
zr2=)e0K66~yi$Pv1~9LrUS7<YN-^<D$|y%0Bd@fBCI2y=G_g#(T9?@Jk2-eX(L5mM
zMXPkLxpPnexsFYp#e#<JPP-mnOHTunQR1$FJ&YMAbICi72vWMPU&@w}gNU7j(7;g>
zKpBO%l@oPZsAHR|__jv`Z)#}4FYzhu-|@@wB8cM{tnGpm0w{^VgwVwg9*tUgsUWY;
zp53o6TJ&G3mtTIHZ5UHs7@QEqs}MU*U2wyOmB!g;|2JdlRw2h9azC=~dGmT1>TFTo
z`qszPE3WuYb@}q|G4}qFd+^|5>-p!GGoWu*rc6mxlckRrt74@AeZ`6u{<(Vd%{Ny~
zFCS|SeY|St<3&F&bj(2V^=W}Ux3xDrir4ou;K?105e4d_Y(2ujJc^7Qt6C{wGb+5r
znhblgjSP$jAeP+YmBtm076emW^RqVz$aT%PD3X<qH;88A`%}IQL)8=UhR&3%2x{uW
zs)$Y%MHJsc){c5S>gZX+19onEwCNY2ShMPHZ4GJj299;jJpX1NIM5LL#y9@k>h8Wo
z7y5ZnXy~M$2WHN^JO1r&U+?O=Q|PgemNK~GK_@R4&_D5sPx#Dy)v8rh)61)o{aFk+
zjb$B{LNC$BbKo;4wWwhu-u<U9H!?I<MS_r5hSn>*h1Nqw^H_V5LBLDKENC|(kj@^2
zSn5ztG(qqV2M2r0WjQ6N`Jf&aC2;XMS=;aD>57aO*YPVPT3+Q{{v7HwM1FD#vQptL
z>TYEFwOv%#abBtqF5gy7a2@H~sJ2!<+-oQkCK$nU&Uw&y_0_5Nz`*Hdp5(%Ndc<N&
z!#j4QjWugts5WpH^PHnS5LzkbE;I8Sn2*N{&tjQ$wGxDCC8ren<F6%<<1G+~+TC4$
zxOt+h1bLDU0=Ur4c?vxPb(Jk`Y7@L<&xRO7%D(tc#(w*At`rW|y3fdU(R>0W7L-t;
zVIiwX1+=Ij7q6HobZ=tnuH-YP#u@k=L!|BFdsFkI8*B<~n0}V3EhdSql?pV6FMi<7
zpqb|%LkWfK@Y~+@u)TkOo7L8Kne0C&FS*j$`PSgTz{}>+r8`S`KeeowI2M3Dmg)Ux
zo_VGZ<||jO95)%BM{9ymt^DR=#n7?iPG|R{?{0OhDO96H*RX%2%UvxBqvsm~vtWnP
z3Td+sdIxqe=9}g07rP6|HCPCsZDBFQeF(sYMJK4g*n)ji(Jhi^Y@waILWaTPn4+*&
zkSZuz{&T6)B0k3u2<3>H=bjxhxj3ROyIohCGj9gXe5hM+<;wN!lIxG=_U%`(4<`Z=
zJLeZed-nW;9*O+HKK}TQQeS^8C6;P4^08p(Zvb;yW~l^#SDJ~JBfZorLFi~@<b^VH
z1oO7;=gyewB$kp)fsPgg)=V%8>+2Ulw;F_j_#TL-+BsTk<OR2Vw+cxowp5UdBoRj{
zzC}zvBr-?QddNNIQnw?1@{0bSR78uaEJ9w8l{yxY<U)1O1Dfw;H>~9LhTzIq;TXFW
z1Mq=Gi`un0bM7@aZamL5jOlcRBys{&b<38k*#7&RY1886yk@1{Do2~dQVNI<H%10?
zwGvI33mH>RySI^!QL9GHg?1kqi*|99cs$Y=6T8y{o7P*dlKXKZpms!B;k5}1V8Aw^
zvu6{eGJQF4mTQ(%jdMdZSN5_m2RElc&_$<-0)DL(YG#4KPs$1<M$PeDl;ov}fohoN
zeC6P`qr)o%Oz-DxA3U93ReilZ<GlWP$2HYTH(f3lh%5De3T{Dn`swWxzW((!+Vtta
zB$)+ubl$<pG$)&P-0?@Hy}fRv<Bs+>40rAoa!wXAwv;jDJRa#cTg>miSUkxw^Rv!6
zYs@k{OJ(BYy@SwLddy3?${1}7Ha3W-cTZ|C4!t+Xe%=a0(9X$opr^3~V#!Vz7}yP}
z=GjAdXP}^;mQTgFP!p%1BWmOn0ObihnwM%%&(j64W4#sbU=h|u0%+dzQ#w9b5UIX7
z^(m!sc*EDhLS33NxCNap+%2wawki;KB&?m-{$|q5hy2^>>df%kwf|!uI&{ctZ@)~D
z^mE5Bro#I5rzvlF%l&fFPbopoYO(Z6=;+1nA1kjp;`boUyd1r|+F)G`&>rtVUa9i8
zm5^$D-8@~VWOjTkz)*Gn#Hr9__d{3jE-<Yar@A?Rw=%ff5J-M;5Nw(>b5*pD!@wl6
z>9lBXpsRy{I(HeVdLVC#^0?I8A|QgPxE)^ywRsTsMVeH&*If1Af-N#dxs)LM>89Nm
zs@LE4`!}Oz{)XqOs*5_hI$^?Z%&l85R4l6{S8XwsIzidIIi#F--e1N;AhgtR<pTV8
z0Q5m%E<Y$&3okZUIo1KsqZ!Dn<tZQbJkTw*ukX2=c0vN$dwL<!pMux`z(7Cn`}lx&
zk4sV%*Gj~^ii$>>v23<jh6kvaHHx61seTqGo}YDLpH&+ofEndUNq)&&SJ)MUy5IMc
zG;lh{ZPL#{w3~DMTIu93r~2!%W^cRk(?aS=Kho9FvmTFSfR~@6&7a>DT(ROVbMxk@
z5RWgVz^K#PyIO5;->a-x@meJSx*Cjptm~ZD0?>(!a}tCb@drE7eg2QT&@m%DZ?t`-
zj4Nh8eITQaEq8q=a2#%2CH4*XIR9iQc8ms-yLvJyI1U0H6J|`dsX>8>5rqR|LUDPq
zEhV79fP-oLF1QR)ZMLsJV{`9vmQi3kYePzPAsF$Pajx|w>eiyB9(4^;glwY-d4>Gx
zRI|ku1-Vc%LHQ(Q=2cg8{F>^v(CYEM()JuMxxO88!2JFDLh6aPl>?xaVDr`To)>f6
z-1#<jYO?-Y-}-R+&O0A9UU=abs^dg(PRy)Z_lw}<$$Ry8z3aJZ0(Y$?mhlw$Eao|S
zKB$!o;3I+SXuvxXa1}bP68kF&<mHYlW^$+|u&Zhmqo9W;sxVDuz>R<&*1d5dw%!!c
zKxfQa4XdDr*zp1?I01!MP;@nqh9hw9k7Z$7f0CzYQs*CXl-PnngX?!0N*RM6Yofm>
z`O6)VL}b{58#&`x!|_?aF4+~i<<9mCdbvWj!7{yuyXF5{PR|{hGIa5+LV&s!NkA2s
zRSFmz{^&=4qb*tTx6FV2*DsX*{&Vqj%sleQBjFh{PSaMd+*>Klyj<`eYXGk$pbt{U
z3U!jm`$~1JRKm?N(zarqE2TPH3O#nY<Erg&DP{~7+_Ho9>v<qdk@~?YUhyqVBnmR%
z#-Jlw5F;WHC>mDyg0)+Ar=rm9PK3H>3j;-!yGufn_ncQe6fE2natH@#MbtN^wsb-=
zaRp1K%8R*<M&ekUt!VzeuKRj9F>!8_6cdTdn`T%oy~cf44d+g&gu|p#OF8eYnCHr4
z^ySO<*WG&ST5Z*;Yq6{?n-v=}ci;WAy>sWp;f^!XYZSA6sN)QG>`I*bmHI7K8W)Co
zAN)5er-PQGmzSc6ml`0gbdYm2)-_&I_R9%mmg{P<8I|pcty|XO#8(B`HqyI;+(qIQ
z+@k7<x+s6Ev2~R#CPVtI@hQ-6Mj@8&gsj=enK=R|Hfg3Zw?WPC_eq7ZxH~4~yH^w`
ztCKwMX{qIbE_#4!s_$088#-g;=TnK?u+ZMAlMym}SLr&VPJQbS6(#7r*);P)#w)t+
zYNwyRNnN<`XZEgLGhkp~wf*|*XEHGPwGxR~<3%$+78v?y&zJLrG%}r!*9^~cLAzF<
zeyla57;0NA_4>Ss-Sv(rCK3sD9MlxAq-@ZuYfd%H)qu)=^a`Y19oBWXLW=#wdlP%W
zw&L9Lt%$&+>G-wEDM^Sr2w6gQp^Q*f$STCp@zmC&w}{})Gf748QxiUNv^-KG5d~OP
z|H6W^{;VmkGPv``o?yGFmm}(u9b=)JS3{;LHxN4HWqoUFN`LEHA979eX?Oqri>$x@
zeYt+_x&Mn!nDMNcmkZ!y8Tib9JP6E@nUD7j&vMiA%PEpotljTe1#*0x%I=+{S$p3%
zfeLPkw0;C(3|I!R{4KU`WA_N;DbV2QjuuEVpzMwB1<T6hf|jIzlPrQjij^2`*JtWs
z(K-$_aBS3^bG|4(AUm#q463=pI}?cvPke8@*Qn<83Uyt-9UZqWie?p5@rx!7P&!VH
zsu%tkmB?xaI>!p=OVP}SyJ;t#v|qdM!k@XR)M01i#^cn*i}%-xjhD*4k7huZ*X8Cy
zZwP>v6Ywl17+Oqlv(Rm&I9qDHUh81zXvZ!lKpF~7KAefWTwDJC*?SWh+p_CAY@a*4
zp{8Gd{=Y{KYBs4R)uI@2kV%;m8IiVRQl=(ALFhP$6vvPN#{r@wjsYW(Z3rHuBu<n-
zNq``TB1TannTcYH0wS4?BT<sul-LxT&2D!0@8J*qe~oXr<H_CU?sfO6&p*^~?|ZMR
zS&iyn_3FO+?t4{loqg6`do4fAx2O=cbkm{C<JI?{76JY4ty2|{my~8Nk}WfLY%KT(
z07n`S12R{~shDt)$P-<KUHz4=FV#A92Kb3o(S?LLqXIX+MXssc7P&{umHtw7j`39J
z8zbr#d445mp1}8r89%X={o04t;~)Foc{e&2r6GF1W8%N?7yjU0ld$t19-61&R@an^
z1M`C@SK9hnTes~8)b|VeU4r+1uk-ew`M<PT0r|a-S?Ry&)oW71aubxnyY?P8j&Cl7
zcTRFc|IgMMjVjdK+`U3kkTpK$*5j<1BhRhpVQy<rZO94vc+T}qL~_WtCxu$rGS$Nr
ziSsWvY9jzDCX}zaLU#*5pd31D*Qbf+=qMU=>;(9JyZP__gEjl9_Zo_hEqC4pXMWgf
zdl4v><6wz<SU`^st1s`WO5g8&4_bZC3)Jrh$ZhM$+m<KZ>9*y;qqj!FQ#d-J`T{!b
zQut{0Z~6T8I&ImIwkNMrStPCk4x}*|h`J;cE8G&iwKP4M5&;j+Ku$&_i0(1VdXR`0
z1x^dH88y?M{PRqH&bKkh!*B~b0GN4&GJWcNS|TsuD6E4m+?ylXeb09BnUAamKmNH{
z@#c%5FFz_M9|gEi0>v_G4*i}qOWRfYVW^TWs_$7>;rDyq^8)h2P+Il(QBj72XG*e<
z2Mx_)>&o15-G+XDa*AHB{;YPVS1WLz)Z_iqs0>22qlFDE1=_eox)52F4|4ULgXb0+
zB^7=IWB)MZavm*#j_(_zAPs5<6?{@CM{b1j!H$6!6nM8J`9J^p(themL;d2QV7(}f
z%&s}}qg3i$ROyQj=xrZ&$I5)(eECr*l|`t|_fv%*wpw2V&OA+1>IKVRN$l?9;G$i1
zE@SmyESKr!EUtk0Mg@c;BCpZNAGtIl3juU1q`ONXimCB+aX@Tqr^CY2iwDA!V_YA%
z^XDj$YMa!Lg^Vg-0{FwABDeL*!MCv<J`rD-f_eJ59wc(qju}5OqR;&K75emN7nw6Z
z?6tHB>TT02$DLxCCFSxBocUp=K-(DYKPqS+1gP5p_5D`ivuJkicdD}us->XiuZ_(%
zEm7Ds8@V!n$@J(&JFLKQhw^N@rc<N}j)jk&OlyA@Hw47$mkLCeS6H{K5pb9ag-kIk
zlv8Jrb~d?zHb)uj`4|ib@gNe@D`}y|U*N@^`4_2=3oi`tc!3d@6&nBsdMo^VYJczV
zmF1`YiJ|4}q;lnLHbUD3?zRE_Fo4`uqqD8X=Ur)*HmdZt$M?HxcpiifIcycaUutE)
z&CWZ4@SV2)T~RG@bn4k@_G%4w0;XF*L|+N|G#Xv4fHiS9PR7+gh0-bv#HV=Vzbfg^
zt%Wok@^F!*jeJ^DDMbz7X|ALDNv2gjnwySiho_57gCfv^kLU4!aQOVk?eaf`=D}nr
zt~(U&+${{CXGk^bZV_?MVe)ty{_+p?@_*-7zS#&}9D1coie*0_+BRq(_PD#!ENwMB
z+irrk-4NZ+<L>8=x(zwvK`QctUSr!-%OE=Ya+1|VbICwheLj`!&}6dhoD$OtOotUh
zUR(|7!g@$&s((+f#I&?j4-pxc7s?VuOMkMlNh@(&RmNG<-~@03&~s6v_;d@?BBN;?
zFhK&wm<kQ0vUaIPg~}95Pe;y{18nl;K1)3YE{tr+%df!pNNjhj$K0C!;eUSGe&Qd8
zwAWE_mRj?9@a0|7D+g_M&YNQCszPt82^!t0BJ4_fxL?4(Q&V;pK)&CqyenP#L8+C)
z7-$_;p4jhQemP5Q({OxhlF(LFjGqrfda|mxzvXm9XVwC;y}&spmd<c1a6Gh|3Jq&2
z<JBEQ{r>st9JidjkR1;pH!Q^B7QW>?a?d}9XF6BltUy8V1Y|0)__a6*q!r2}uWxsa
zQ_+y~0Fn^^XP_<vl{XG#8q{4wtj*XU$S&-b|I=SRW&ir$UnJiAsE@x0jnG97cJ7Ks
z=>pKBgMjZW8lFd`QMzt&w&|MKCbiPG<?Y>W8}u$+f0gAWeM37{3H+uYriaf4wAwSZ
zaTa^BxF(~eC}vRS6`=awjrdoOSN-shU+>da8qqYpUi~1W%+yIka5)SmXo9bhZ)fn0
zyZ{PR;c=wRP+Vas^ox=6AQT!t<_yq$eGJ~P60oHCp~wowAW{US4OjiqSN^jsd**+P
z?AvafM9#boYNc)JWf8UKi$=NJk!D$x0imPPEb{{O{Z{mCQY&3GI`4MdAb#}qX@z)v
z>uQB~eJ_By_BOE<SQ<CAX?V210&)iQdd#2b%eP{>IgTn&zEyqJj0Fz}O(Y_YF}D!a
zOK57Dpu>1kxxl*CapHj&&}_Z%3eP7ULD8tX3z%t1rYM6o`>2OuEl1?4+zR#5i_~J5
zud&)=472Dn|4Eqsr~m#*=F7XR!e?ELci9+S6ieK@Hb7^|mv_|!JxSi>ZAur9!kOdt
zvIsL1^j=D>ePqD0M5FnT&}?&68&@c6!kQzu!j(V29n%XN{pviU3b3~ukCq<QK${j`
zl}rlGkQZ__9f?XN@)RxrYn(3#RJzE3%%9A$M^d$;(K!ff-W*DoLOA!RT7c55UN{2r
zJZD<QaqRY`zee=`{?~o`UC-WYv0WsNyi00j-h)GnG)y#aK#vYXn;d85%5eemqmJ{p
zMaSHJ99!WUv-~Ghnmp3CrZJ`}!CjMPd&ZK}$+ushg!IL${R%X58c(k`0Ls-d|I1Vg
z=n^YcH-j((JkuP^gRd_WZBMAtk0UZJkkS3ZOANyJKY!$<9`6jjdRp}Zz*+K`AnB;o
zMl716MxK|OJT<@ZixrrEbd~_z1>hgY!J)2s^y8L7bYGg~C{_9_D3znczO~iVJSv^C
z2x&rxrCQ=(`Pr!*5xXbW;9DP4dJZOa5nNC1Y^H{O?`l=Yo04|MFFOEt_Y)AtfRE$6
zjry50{lWCcvJ4OHPKCQR3f8EDd7?A+QiK|S&TH-)&mb0CfkL=&OpJmif~Ps8j7Bu^
zP9`Zj^|-hBkxBaN9~u;&{QPmJQ)XSM&$|gaZvgL<Grtok9u%yP0uWu8YaJHU_xsVM
zFH76h%3(S4dr>V>c<O6ud9C&cw@5wloD{8XXqTj{fc*6(S9z!TD;1d9n!X5yk}*22
zPk|>%^oE5PbbFDG>AS#+UJce`35kv+pxF%&#r40L*x)+pqOC1<`NMr**3!mI92n7X
z<pqX=rN>kB2=uv+CfZ~zqu=?ZBLDEW1+<o)B(A)TD!gra<v36*v!+~*JkEa-9TB^r
zU=CZ6&%-J4Aos(y^@1~3Cb@0AOc4CwfVNcXg-y49=h~2V@}L68*Q(04aMDCDGEALt
z0uWc<P@%Zd`%oL3sKCQe2a3q(uuotVjC+yNBYg>dMrF-k7gk66BWZ5#kvLKf@|Y+M
zWC3BmJ@BX<M-fGn$J5^b{FnR5U-@rOY9n-BgF{_VEXT>?d}ibPM`?JTB;`um{COMH
zN}Iz$_qtykU$`<!AQM5wEQVXa_X_lWf1^h?l900edIf?>J&g(9aa#j<;0*_bMwKf?
zuH*MS<db9y>ZsT;{%=dI%t`oiKS2mKxbSBwCE$4?x^sYhD4s2a*K~!SOyE5>uSc~P
z%$I&XGSB|+p?&PeB7^cQfV~U3;z_W??V56Fon~p<CGoh1P#guwyENQtn=|i47q5>D
zf@OVrMS#5m%&$!%dbQ|PK)zE|(Bnp3V#UWCWOpIeGgBZLKsTsq6qoI3v{FXHGZNY1
za<7&&S^;ObI5hMBHOO1562?UI;;6>)w1(ns?zr(%HRk+p!H-p_Ukvm31uFWY9FC*U
z{Oy(WZ~WwOq*IOqXWlk=pJYH^2%6=%R_ARsLc63^y5P+F(StWrTY7(3N{R62tumxP
z7!4_iEM?h7Ls2+d+{@mK#9WI(G8eO}QigXJG%*-dl3Lf6q^cJNdkhY7rHo0>#(6Q)
z3{hC>y2mQ&CTB0!=IE(qqRo-WEUi}TuHhNUpixpkk6iTbu9<3I{fTMt+rQW^KJwH_
z;LN+`%ik!R`7CIaZ=hN31SGSzwmr&y<^}3)G(x+kR=VQMZ84l?Wpq6!dm)s73M(>2
zu57=MFS#V5&7D_h(DyvdNog6TTDVeX?%DxnpcIHL)#%Dq$e~Vgg13evA~<XYR`yic
zO>0ef9|l}PuQ2Z&O2y9$#k5daqmw^oDyht6V2D9{cPwUI`Ck2d9H|U4kALfz;{4CN
z?@pfQZ)CoF7WB$V;mnWH`1}UWyz5ENu4$I8LH#hz(u08YqIs9!>wdM?eE8MWW*7SM
zGX`_6WWQ(zG_g?yp4T1JL6y?PxCz(Y3qaY_6>yenR2+ZLiV|4aG7XZ8vmt1bOeU4w
z=)K4dM-nd=OQ<tf>xML_!r9qob#oL>jjSz)KT9eGw}EKfcPAo~l*~|2L(K%LG*Z)a
z^qy(-nI9SEpZ=9a0OCcg*4qN^<3_O@g*xeMoc}1z&^ADOo}k_Z?Xn0!ew5#994vix
zYBxW)f+lG7&&w3jEfZ5R-KuU#YtEUiZF{O1VQ@qY9K2H+J-5ge`L?M@4!M%fN=*}j
z4|ymRI{zFa`>5C*Ws^$AXjubpE>%5O*oAjK#MeRk$csi#ra}9%h}7kH4c@5IBe_<R
zFzBN9FaN7N|DOLlv=40^mnLZ2eEF>Cl{X5YA9|dBR+P$7xbe1i<!y#doV2{p``s1=
zE6?S$A+(91X@zpn2N9VH8M)~RuW_!bQBm`yU>qOd4k@CO9&)48dVVW;O?d$9LAiuN
zvGj$)VQ}VV=*CzRiCp1cdK|j-tZu#Cf&+BXw=+c)$%ua`mA@4##|dym4(Y51vii8t
zfWt4&q`lAl$Ajr#|Bp^8SKf6K^r+l;*C4;>6?!yF^Q@zC<84*hcLMAE0P%6F$lLU0
z`G(ghSbcF?p`#T*d^VrbRz7l3Z;rl5YA|d-(^I`TJ-F8p?N#@QtIwsC3ZRE#Y9#>6
zKpzW_9fsQc1btJ;&R}O+(<cM5(<SiPd3`_T)42jqWu%`M8Rv;EPK=oF#3U%>leSP<
zW8wv8kWmVTKb!<Ic=2bl@b~`vD1YCx$GHjGHMR0a<;=TkeBPI4X|sxJn;Y+v4_`!s
ztwrO^-5*YH`f4s*`3@EI;&wsFv<5&1xU<86;@Hsn)sUE}V3o?+a##U(P>;n2+DMey
zf7&dkRG7j6GT+XedEh;!YhcDYn(sVZ1dNd*>Z)Z@S4AuING?u^y!fmPrTUh|#K|6W
zyisbPA14CbqI|JZod@Eq2x@66)1(NTwu9gNMZ5E!@2l=z-u^nziWi@CBlNg5K^K8y
z=@QWQ?V7kK62z0DD?bRIy^x%Fc=ok4S7)pDuMB8qo#@hXK+6@V_68Mb54h~E?q8MG
z1-mEqYVL&<CMHyXV@l(toiS}p<Epx5C{CSb92Nak#`zIIv75*rbWsoUFd(lDbetc7
z7BJ`n&kh|t29SF2N0)HtNUkN7(SB#>71kU&%MuYL&5}merK73pC?GzZr$_D9M{Mu^
z_;{TD@Naer)UzHOnnx4#jmViF1<<2e0{L+t5IP8*a<Aj=M(ONlvAAC)JuA+<7hb-x
zDOqgG>}wu!kOYj)tphp6<&bad8!CG>uv2WD{u@?=(=4Euc2Ch3ovEtvt*XksMww^4
z6-bj4I`plHghWSsNBQ$Yt9OJrXQirW5Dv}UI)m}%xV{fB4s7JLH5M*i8mS0~W&^K6
zrdC6%4OX|apxS|vt9UC?N2Yp8^Mzk3(holt*t6qBr&GG9){kQo^e_N@6p(JC@wu;Y
z{&~<W$6<Vbzr6ar!1^c^c^mg{>$ccjzLh#sysplze3EFp89*5*qo@M*zOAcrSEUQB
zQkB#@X`jBlagNdorAO1}Di9qt^b7cOWPC#3&A`i&L->$0=<>f%yaYn8@MLHx23(w0
zwC(w;u;efbbQp<;g<#{0v3=(0Sy9s$>V_YLtMoiqiU$Kku<Q*Q>1FmnF!*18Iv)R(
zpF3_``Mmk^Z#F>>4&uk2X6YK#@AYvUbmd2#^1R<|Wf^f@`%-DlBho8$U|7nr?9viC
zhecC?U>#6F?%x`vua5`xrR(d}QPT=spR4YZIba^hh(3cU4;*0xAIcbZNo2ZXNy40&
zS6>;_pq&)Tf#;=~bn)%3Vzz3&6^J{cn;ea5-a7~PU8-+PQD{>XjZdQ+huUk#=)!=i
zKC@r@*&zIrUk>tjUOBGK(0NXSb^+eUnKR!HpdU+`Wfq{m-zvQ8;O1F#=69lG?)1l#
zS0!p_hJTt<_DJMPUO}_Kij>d@r)=sbCRgyGr3(D%rL6&d`TAN_$&V`_f4=&+l*iJl
z7drCLb1HOW^ra5`FruyqS3VI#Ef{yf%LTy_Q!m&VMqQf|ZLmVs()g-}wfry?PZr)C
zU~q^jC8k%Hn(-%EW05yHe!g0^^1-kFQg8Pif8K9~&XXhW64bk(S7ueEpA<m9?>PT)
z@>#hbJ<*lMyel9-EJxlYXTJCLrDqe`{8*psa8tu@DT)y*42+*V!C$_((WfuJzEpwZ
zR#jEMT!E%-nvJNa-KadmBV<~WDGuhQneT?BEu@aH!d)K9uu-U0c`k-pf!Ui(#FaRP
zij22_lmg6wG&=k8xXy)9M)>*h+~AO@)iS&yI8A)1e7##ts@Ep#|Hj9o>0kWKMWj<^
z&6juG?3_2n(iV+!(DQr)XMU2JocF6L?{&-~>B{$0HP4ze_pc!|%U^ecL!=e;?GB0-
ze&-d?UD@u_mtJ3X-1s=T(f}-`LeaoviD4oQ%|cRvNE{VWsXJ3HQujl6t~fvyx&_Tp
zXQ_)kPXTZaoQ50`3Kqw|3*eX19G!?o03j^8P|ds%8V0rkQLs01&P}-X{@|C&<hvg;
z<(Zi@Lub(lU8M2;liCD56lZ>zL7}djoU_!AA7&@8AMkIRS~)7Px6PT?cU*lrv#`Qt
zmfSXJKmc{55xp|%(^I#WDYuD>j_dc-XQi3$luXcZs*O#Hj84&)b2aTeSE}32uhyJ-
zDc<O?!R02YqeV!;8MKRkeNI+r>*IRfU{fHCQ|9ZzuQyJNq+aKUt+S%8$-QvsSgZqb
zlRc32|F@rx$3JnbnxTuxmoExu-X?&zS)oUVc{9I}!X{>2k?)rlISe0u7|#4&#|E_e
z+O+h1&FyXe=4DO0yf*34AMUPIfSu6x_{9qNY*UrPJ{KX)WvR_ZzL}ezu&{N8T*6y(
z_0B+!3LbHCtHT<|G0yJ>kaz(|^_)l_V&J#8g<|l+!4-CBbg&4#I9J-PiqBMO;|7JK
z8gEjItkOX4JkfJMTSQ;_<#3<P&@Kmv7R^0z5onj=O1bQNoPQCToQnkNUGV4gqE-$|
ztK5F9F>5#TJ%3!^2<opT6_8KYD$q--iu^^Va^bV0ftgDlXdt&mk!rb@dRqPZ&WDY*
z-0ETw`4o)s;+gz>;-wS?9$gXzXjV!fg;gM)7V7d?$gol&6bn*~n5Bv2amrGIq>Dm1
z`x@|VWS9Q0pSN32{P3bQLc6HeXQ@A5#3txGD3>GCEM3zmK8U<gCp{0-$ehK%&>qg5
z&c1E~+k`j+&`~AdEF$_B)71(@GuqmHu>w-N$40iW%5CF&N4*#|ze0!vSIPV@C=gV>
zd>@|n<cfThs79UF3Jm_>Y4{CMDY#wb4WIM?d7;9eQ!T)80nx6)roEmpSV%y<G>eYJ
z&pFD)$Y9a*)(_>q-+q6XeB}2QtqFS2bDY!&xi$d2tBQO-fPP?|`9XN-<4Us}hHpOz
zx4s{0<)B>mEC+`05r+?KOkLUPRpvsmOv`}&FkNFeLE4>MarZ^s8f<5cX>3^>C^{Qj
zIgcMgk>(1_xUDGbreq+fyeaL)p2u+yMD-F16*3SXbhr@k<1God%{;vUZQ_MwxJq1t
zG_2U^`o8D98WggVfU#J!SP9L-bdF<UhX3Lp+2n)oBioxvh((v~iHkJezi6>?T~RKF
z9_R0>$+_q>OV^FigI3^O(I`i4e%6CQ!z{PqX7%lQ1LST3($E*}ssr>%@=8_3mbDWi
zM&!kz5VQ#zrHGUh+Pnd8P$RIgMFW#$K!+<|__gG68{;fj^~{;O=4hY`j`5rhgI;|+
zALo=a!hbv87E;|h84Z30kMAZ^t?JOhyGJs>1aFxVFI_NxPr3B#KVo)&<X33MAM*tE
zc}2+0vI#oND*V3E#DjqHQK^yR9tC&5%K4x`dzfSA-TcJwF)!mQ)tBq!sX@LPF4Jzc
z=}X2}D*()#46va#Wb7XqprA#d7dJw8u=OEijV`o8M&}VE;SLdN+TE#I?V?E<i+Tk>
zZbk7zvI_vM!Wwe;lNa)M@Jn|KlgJcds5OWc$kF)B3e~C`Z-^);^|8Ry50;+(2l@CT
z|CshERa_L4t}cTqx};a;$(hfh33?=&Wl{9wvmDbu2;d)<T4{s-Zksc|AGkZ}#16hn
zX8JDt{ME2eubUnf>1G9T(|S}M)u}WHF(hO~|IKA|C;=7lw{5031;iuq@LK814ggJ3
z8Tp5V(U#sIktkEreD8EAc=1vn&PgR1#1qk#8v$X?63qi`ZerJ9Mbc=5n{NUyq+#km
z)>I<#0@v`(9>|w|{inm7zx;Ev2INKH%i99(S@GzLTA?3#od2kN`C$QhKfuz}nEpX1
zlKoc0vq%r>dSJ*=8hKs;U;jC4rw&}VtIw|`TV&E(6!#Q}jd+TOp}HBuU=gGBMjDZ^
z1XF<C;M<+KR;oNYyi)j_(^MO$&hRP{YDUhR<~oqnG(Ai8d*P|kRMal1C}cu!=Kwog
zril1^$GK<q_eK;fP`ZFahdPEN?-cUILOz4u^FLdLU;iIW{-zs?LaDUPm(Pk`Swzmf
z%PRc9<NSx=%V$Ni?3W5SY*TX<Bl`!TK)R~Fk32BsK(VZVYVb-yTW(<Jk9Q`tJFQVQ
z%S4wgAiFdWP&2hE#aYVoXnqCyYp1HOSI8{@<N-W`^e_@dOQb17ZXppFV=SQA_eS`K
zqCsaaz3@O3xt|zNGDh7O6PX5$WdMks75OnkZ&=8pxruTAUVVRlEbKJ+gAKgKllnYp
zmO68=emz(;No-UuefDn$TR-)a$C)c%6ux{GocSyP{K%Ynm&RIM&@6WYqPsoWuDJAr
z{_LRC%27G=t~m2%;kGNUWOTIxJWG$q16mrAc$*Wg4-K7O3!8w7*Cr)d=EAGbTcd)K
z3gI?JIbFYz)6E+tt*q6+zPzH`c_><RH##qX8hSs2rk#0fXICqgH2li}q)dgtObg-7
zmNY{&kVOG@0CB8(aZoE|p;N02(ry6|JA$%MsbeNlby=<)`clsezTipM{`H^8`d|13
znttb(7r6=A246nUCTN${_o7tjhoV^)B~)S-;JshUXkJc<i@=$aqq~={XBEP&hjmQc
zpekh<$X7Yjvu|p>I0sTxUq8AUIc}t^fbP+-SNoj^`EhF}qvvl-=|(cGb35bOZv`Xu
zjFL>ZG_h@gRKSt|#Gw<I936`fIYOLWG#%BH2MN%pxz~`zAdqnFplOf;8cLJXX~yF^
zbqI?AKMqqp?zISNt6g4v8V5$9jF3`<xH(>wqSfF1FY@VkeBXXt6&IlqdK{Xd$Bi>@
z6VUhVns^xMrHck;TiKnn_FkDawK5CN+<jlJ+{^@$!DYia5bl9aTi!!J1y|<cZEgU-
zhAvg5@cME{U%pw=R+%=OIn1*7JT8k<s_mXs$EDS1I5aw&QG8odI(ezV6h)yP<U}fW
z<l`n1V9_X2NODCpeN0xw@NK(=9*gJ50nrhu85ed4R(2PVJ;LWDusa_qhQIZZVEpmV
z&8zA@?oH5>&YAD0@p)I8<uKLtqDl=Hr6O;WT3IB{-1)QEGdJrX&OJYI&<-$jqxO*z
zLfQ+ea6oPy|NPo?jjp8w%6lu+D{fVfx6=eY@OfZ-g`p%@u}9u$zId=?;^6`+r4YUw
z8gU=2-4K&ZnvSRSWf$I<zpK=<`Zxw~s8}Xq&1<A-8j1yOD8o!fjKNY#J2G)SSj3A+
zCOY*bm1b`LssGZB|LnWS4zh1HLFYre9JdsrLyz;f&6n@DNjeW8@4|bf?TWmO>buS6
zvMJAP<lrl~3JpXGQvKWT-a$>bVBFIRy;4?R?<C9g!p@}%AbG&(s`EHELDA^5OIas&
zrZw#Xj~1p}GMNm81aTr139_Q0d_i8PUb|8-pgl17!`wD}V-O`5g*tU=%x(6*Lc!#v
zR{ne((>~Y*ICTv73dE9tzh^+-+~xBnk4J0&^b_gkCw}dlP0;z#E{g!@osRP_B42)7
zfV}I9e7}oD7o53&yDgW}!kWDLLF6oOg(tQUU4wtII#|Opy>S^=AbycH(&Y*~N3=8f
z(+c<|wR}+k6dX8w$iY*GGQ5)kEWL-}<9eQ509j2YGSWN+@Gc8g6UmsrHG3}C9mk-X
z=h{$3)P_%TH)%+6t-R3iAQO0Wz8}2P0~zmUl@4_AS@`rnq~If;rE)p#iXVTYG(nF$
zXMU6lJ(`vO_##m&hvD1j+3Z{d&irn-^Y^7SlM3NhF%9HEoxETQITrfv7q`yROOtcX
z5_g>ZF(v7iYiv3TS!xP<_x0MaZfNrN+*sxKH>N<?iv=V9v6nn#NI7znhGbT#pE<HY
zBQMj_-7b1@-+q@o^RHCwa@}sB&;<ip_@RVj6r?i9JXe6{g(8UR-2|UwBs2>zB&Eq7
z$(DZmlXmA5zdGwi=&X~57O5Iv6wdsp75hCKpltv-K*qlV`J#dPej1#|g<9#t8Sx-h
zdQc%#VZ)v3N2{t%0R>@%j&OiaqdcakH!ssp5z}b;bxN|=IB3oR8j(iExdfrS=D}TL
zn*i)?TAz1iSc5O~)vVp-DxGN<2J974xHv#3t=|0!Q1XV1P&uO!YOOjZ2BhH@F#mF)
z6XJxpv8%fU06Pgk?*cNynv2IU6DChxGnRuiWD#*2nEunhV0XXwH&C6=qY=93LqoFy
z@8baAca<j23drY8xy+&>@4DGJYiGp!Rp~r9RM=q0dL_6Q`&ols1zImB>-5$1LIu<b
zZR|W<-9B<7^m(bau}J%IwzeWI%wUr%^b7Oma9LzP<)0x~nK^G493j;+SLKi(q9S&H
zO7gQpxo<w#L>iXXYnJk7>QOXopvBK;V<bK;RI6ZOSpafVSLD#RV`1R)vD$?f9|!Q#
zh=rwqHTeT}__<Hf?k8I_;p(~x+GQm^?`nJz0R5l<A9dwfzKD&_MXkuY457HwdG~YM
ze(4tXJEd@^hDaO$KNd@gjp@tTgLETZsw(m8bwEW>I&fzH@knfMV^MpsFeVmD-5BnJ
zdfKMp2rqLC=I|#|GN{m*CwK0Q@-qfeP%wy>BX1Xxc@_ZVaqs}-EK}KIQmV2AA<nLH
z59=KTEDLO@Q>$=<L<1Jo3}1gCP11Du%+D3OlV59F*)j`Y@5<wR-n7fSLo4=6vD}qr
zIce0&qF3biqcpls6FSO-Er0C;m4-Q6+Au5hLhw)pkR|QxK2ue=TMdT{PP~w5%bv&z
ztp}2&m;VXs0v;_m2a$5$+;oIgk&F%tISNN6M2lS2DY%y5u;#m)tWV*+At5Yf6yJyu
z7vkYuj;YW<xzI9jYjglD15N`8kLFzgSO4JY`8MAx#st|T;p*o<Qf&Y0|D-F9yvqvw
zjnV||8o&<<@OPzI7Txu*OYq*$eY$RT9;U+Ynlry2=$AH_kl9=5Uhkcw>-}@p56855
z>#G%b<qiag{TiqdF2NufhDv1^@+5!NF{g$a1;<sl8xWEzo`hGY(&NOf${8`F1I~RS
z*_}9ld7DEc(v6&VOJB9;#%lP4OCw^y4(bIU_Z}~h`x5EnV9}Z0)}RG95BVdmX}I$A
z-`d&wp5NNfRA^g(f80TRQB#O!Nx6Ij%`%U1{6(Nsx|;gznp&APKYpj%+`klzjUZK7
z!P>R8%QT9IG#Ov1s?KXV2}#0X8>K8tI0<@5LhOI;fR5_XdAKM71esqSN`zcmsLnjQ
zO_36Mp%xMHK}kZMZB6s=&yrm8K3yfwCR#$rV9L~ZQ?0xxIG$ggbFX$OsGFJf+Ts?j
zOe*hjrj1hO{P~>xGqP&>g@s_8jo)X7UwAi--~UI8+yw2KFK+{+7ZK3gtk~~5&OZwf
zo+Wp_NEP{hV&P`RnYTr^_|Gj6kJ%y~(2dnol$Imf-FUvLxYH(pIq;M&PB$L!HMv67
zy0#=$uz+qN2|f(Qy+9-9+|Ut*drHs$TzppeVYz~yWEz0MGz|it9iT@-fk<<bp9bHj
z6suck!~5dcIGXDCKD$8j;;}uccMI<MXA+(fY9rSTEQx13KL<aUIxqCOJNp4RJ1#x-
zH}lc^e(;UXm(QABnHOh%RDi#41N68xJ`Y2!%&H>47eLNBgyJa8&%64wP(h=rwEg<@
zCMDaiQ<h3tLm(56k`%-hH%~$`81^b)U0$s!>_H8Bq0kXrExQr;paxx*8p58It6Jv8
z`J4>ED+4vOf_WAag?iAJOVyi-RjsoYKrW}PId}&D72(ZYr7z?^gS2a;rurP<Uk)Wq
zlPfAMOQwy=QbRIIsqk}Yj5ZV#$@srf>i{%MO|<n%)Bnn&<@E6v=gpP33F>VF_dKig
zwn4v*ia**9n9bVic2-K2Sy$x8c{u1^p626}CcBi<1>3Jdsb`%HZc_b>F^+v%0<OfX
zbKII1b!bHe+Am$pon<cD685W#d~Lk~)fK7UWt1Nrw43zIHQ%!o$skG9?m$;)8m{iA
zneym`$Em|27Y)(AxFDvbs$f!2n1gT)Ze()GQ6PaB6QN@waaMFgK~|-VTxqkzVkQef
zDHIcS6|fK(C;C_jv~WQeOHch96`22>u6Xj3-UK}f!$b$YZ*&rXd{$x1i{@3{1=X_O
zV{v;?A<rPlAG%nT%aI$ZsV#7qn2Lxk4F-n7VL+xIkQI|Hc1<kB!)0?^(DtODmp6GD
zG@-nzzT<(8?`NLI8`ZE8o*ET5SGH3b>RA!F9~zJFO+n=!3r)j~RpzoMi8mA!Y7?}`
zwdvU`T*&^E#fHJ3$MU%`8wWb7@7`Eay(5Llfwi1}EYArGP9T0YeC#xlMr-et|G=8v
zzkiS+qFHg}ZB*g2pjQ@=V(Fssc_5l)QGxuh)XGUn51Mrd#ocbV@Os710@~x27*z=0
zt3W*HQ|*`-*LiQH<I)WcD>S@VhV<4;J-V_T(F@a&JCD<dhoZ%n%9j5(=&L(oNa{PD
z%ZNQm1?=R5Lc}w0Pg1qPrP5QpkTgtX)E~a%tAqObnbzTJfjTCWVWhs;;WAA_o;t=g
zQjMxv5*b9|p`@_@HB>A{8nYvr3Qc4oaLwSdI1?`a{-4dazvpwa0Oxs8EA!&ayR5!v
zU7_ETW;qJiebgrDaidli!QyrnAryBzw$_=KOEsYDYhbDho!t^0KhBey4B~yUz?HNi
z+#@XldSQE+ZUsvfSjQC@Z#G^mP^GwkCBbN#?G2a+j4DFVZ1w3C$N<w^l`ZV|!sqJA
zdD!KU!L%q;c`{Aad&T*`h!STi>XfxXU6muTC<?r(PET0K3r~q=XIVFYp<jnwG7}v=
zU&B;v3kECC|64m-A3n0z`ElmUj|*qsHh>?dLXWzrtlvn~%Dl(*XX(Row>Jrg49P*x
zW((9oSbY(~qBg3zarY^ed08F3nJm!@qYE^#c~w0>Usc$fwbT!`vxOHHVd`e6)1=F=
z5m)ZxO!eWGwDNUUv;(cCx%$q;KA_>xrAkNW#7ICFbP1oMC&NdDWR3Rw^>s`#ys;$U
z+2{mlECWiJ$R1-!B*G2=q0g=&FO>cPB~-fSv-zVYzWP%(yR@<B23w29nYRtz#{tj}
zq%&UxAn%e|IY^a#T!6eQd7^)OXv#Gs6F<gF8bV~6tJFyYooi#Nsv6%tPuHg_)z>?;
zGx{nOlr@_2M7Zu!D4Zo3HcE0;eK6264HAZGgyjzeon8_z715GAMU4ldh>1gUbXTkZ
z5KxhNRskUl(W`T9PpKIo3S>exFv_R9hAe+?WlFTr<B?-(gyJb=@d!z|^`d#HZ4@j$
z_0fFu<G<QvBXrUD^1}f4QGt3<DV9UgEXM`Ny9{RDFL2Hp$lIn`jsottpM%vbVNebn
z!QE8n3W9t82<y*{bVx6ZFVa?GX*~UE1%kI+WgE$TQVB$Mnr_jS3$@+w;GkEGNc%$C
z3*=T(fHDD6aMc(j%7wG$s+%bn=*Ri7BQfM+o_&2uWsSz_#HSltqFPGHAG|9-T%5BJ
z@Lo1vh_=V|?gZvv&KXiHaJhPitP-yq?>L;Uy?5m=Rj>1}b_LAGkuRSmXTGQaexN|-
zdjYn;0JOOnw9S#XQIWUFiMKWNc@%!Ut%RYyx0S;hPWOUXGYN!Bx++PZ-#JHDCa0?J
z$F#ZoO!YI#`z$4aNWc))cVDbycg2(|_N;7sV$#Lbh7~aON9D7^<E{gxUmy`2$gmGT
zhViCGOR4ysBjcogFe|!q)>;M<Ntc$IK-32nQ`FbL>v8D}_|TkV7zx0g3kAe_a~Dx3
z{5<0Bf_UfqO?>rqnO@wOW%Yg1nxONbU1sgy(wWYDk*f2<9(RyxeLui`KM-9M%iH_W
zDtrE*C<$4x;*x|6H$#OtzYWtTWlT?RU!v_iqTR{!70}*r01VX&{KqjJi3&W)y+}3z
z{LrYM3DhXYsGDLK=vaMIZ40GRh+?IoY6_h=1^vQc4aY?%krWjRJYu+N-kngh1Bn84
zV+;qHYD97@UoThY@Pdh>y_Gn^G4N4H!&KHF3YWh0!6Lcv*^|zfw+Y;{0PijU{Gb4T
z&j#os1Np3dR}R9T9|X9&lp^k@%05grez)UIxU(F92uD1eQJ~{5ZWT-PrQJ)ESO0D9
ze5C^Mu`}E%Bmt;IAOzKvN(|2xqtlrz>x1mu1wD8JK|ympO1;457Rr`5@}lFUsxL8a
zFRqBFqH+Bg;~xu$PO><FmcdHpBIR<`#p87dWQx`JhF)lxQZ2n4$UqWyFK!_c^R31Y
zruWics=obfTQtfdRO^eD3%W==`e7D;d(tc?C46~5&C;WA;`al}MdQa0LZ9sCye8f}
zg#hISe862-pI^7<=#~6T1yrL7$e*pM;@UkCQ<1I#7%Jb*r^-q-+Tz<cNA-ERnaDS?
zw>Vn^@OfgYtKyZuR`H-WFpU{{jZu8$Vo{rWN|!|Va#wx#YxRjU!(vIIgkyw8tNv1a
zSjtit3#e#dhnwUY*5R%<sH=LXZLf}>6kZjMT}kOVF!JKl+x{eln@cu7HSUThZ@U7Y
z2dKZ1qUG)z=)9=l-L}N=xQ8^)N{YCj>OG8i&d0a=-!dSZh@KffNaL_i+oLNqNw3wE
zN~DxXBt9*<H`U1iILWo5=8Acg=(Hz$p@gx3bg8~3O*EVlYC=Gfd2#-lId^dESTzc7
z5)*U}H#$S3&07BX`L#M(sPrswr(V$XM4k)fO6`O)1Qf|GgCDpjln;`S+;EUAYJ7Z7
z8Vrrca-eT)6fHmfo^<mApPxnb-374E$~|$BIrFX>pNDRM9+&F;sDOWzYQ4*fylW}q
zK|w$2ZC{Sa_%lP4Mtyo^^+75tu-e#SFZ10-o#H^;C{UsL1Sie_*9RpM)D6gnQ%CSa
zDN;qLgu!)V+@DC@3o$svGR56Qo3fAwI?5%k)hSS>paE&cfpH>3La6@1cY{W0qVME+
z@dCnL=m?#_P6Uy2MlwKcQ8#XRk>Td2YubvE$Ax4RD#0}I)$gia`_I!6K2D;0VjETZ
zahEC{ssVZ&X_n(S95hcU;z77{R|rJY2P0vvU6tEgqV3a{s4y9AZ9Z33ooSQ!V`Qo`
zFV){1zy@&7a-~>$ktPT6Z9H+gJJm&?NhOj%=D_2%LoX=8dXtvm-Cf9qC|i7b1yo8d
z6Q{9o@4T>VPHLLOJ)gV=W@pwFi8p$oT6f3AQ$3W#ix-=2A*&Qr3?9#7r{D!xgrd{W
zWoRkw-S{`F*Zb$F#gCIT4f;lxDjui-dXi|C!=8U0-*-W^92MOC<CllyZ<V8Hx^#*r
zXU|n%Pw3{>*Bp{L*`M|b8#)9=RHanMX#T->B?`Tuhp@K0We(fL$cdR2`mS6FL&@R~
z1A%HOg|-0r4`T(>T&#5ST)FSkd%9@E7E-16LN)SYX`&TS55@C^ZF)x&p`c9N<Yc-9
zzAL`kW{TWVUrj^xwcuI<gH)#EiE!}h`C|IOjV?IzMdQm41KhI$??nalPH2|9Y0=xL
z$oJFGJc@4oARv0b^B$BoIS%9dx0`G&^^<q;Eu)oXdOh5x;?^sT_qUOWM`Lw@5)+<o
z5UA8-paPyHxq`iKU5m6H{ul}WU6gy{*>Ij*jItOcM>3|*w_!2JJ%ER$EmS!Ck%)&2
zn`1Fhvyuj5{cZwPj#&~#&Q!pc7lKKmyu4dL3e~Uk4@#rjcX0EiEJC>#UhNv7xymNp
zYc_cP+w;lg&$S86v#8d;Io{vieGVMxydRLh7kJNO=x3JA&BIjhhXMA(QZ4(r?I_ha
zKG^;?qU>$gO+l}1?9g~zD@_P?vY~=^6zlh_L}4FurZW1~ziX#zAZOmV?<EkSl6BE?
z0(gCii%TSu%>+tqBodk&3D?d)Umeyo3C>qQK1rU!MJjJAJT(@HRH|+$QTVa>ehk>d
z*lWDPKuab(nNBH7rBD!$$J~4@sYalK5L#j7G18P87e^uup>|WQ{i`3YUjNT^4bWXt
zE3*Xd<3zD^Mzid9!gD|1J!`G_EI9FbG&&by>hsQjKuK7Yo)2&+#RI(__4<YeQB|#1
zpTo$|D6)0A5VNsXK$~evsdNB$(}K3A1*JPBy|P)*@=67~>ourb(!m}CCHG@(aDoem
z91!V5m=+zUsybnH3IH6yN>&Gvz?I{vaTO1{TxWAD4u-6C=fNNTx)-a2(!Gg-I!111
zqP+p!&O=U|LS!WXy6`|gmxUsf{8GOn2l(^Lm7{MPZ+?IEJNO%m%$Lur5&BJKi&W-E
z0p?j-*tT)*!*b$_s$l5~-0ydMIM`SpMiuTgLo(KZU{oO{gYw0tkiwy%pvR#U0X@XQ
z6xA`MOyxlSm!+1jPZN60j_bd}KsDEhhr^gZs&=lpbE%-AEr%f%xN;J8Nm(fOj>agQ
z7*UZ&Lfk_#2^T~DxyvHWl+Gz-v_F|DC~wR7f1c|?gA7qC=ncKQ6~K-q+=454cb=lA
zp7`3B!h!!e8m7HCc{1o-KV7C5Hs+x%pCxC0nENjJG-y|i&xL7#c5&Q(c=ax*lzAyw
z4nm={G4+YthAXc>)U!1i?7IuPMrH-v>|^fe74|Xj)gI<nB7h1Hq((NPT@zP-j8O%`
zyA_xgwO6^E&mVUWF_kHF4g;d&#HHG1fAP}lFi$Cs#nKzcH%7yg5pGcwdOsL+fm3(Q
zT2ZuQ0>WwTsbf5lNAnb1xZ}yC8s}gQ$EjO&W`tZ4)jU_@{9NJH4t{+oP2Xtg>+ejG
z^Pg{<PB}@9&{>5&FG?e{(*|f4)p?u8Edp?N+4wvP;2-3?QUBK4V`CZ)8r5_t4Nh0#
zR#kZzBb36ps<f1*=%^UbYvpCysSb?74GNMMD6@qduSXM<fo+m$@B{SSaiD6H!YXCL
z->*p}KTb8+0s$7KfGbzN435YIg%1k@`9QqK(bRNYyB9W5cyV$8G~=bJaF9v_{}&7i
z!OxtpVSTw)y_BBrJ(SUYBiy}_)S^fhCYPo(y!N5#t%K>!kHg?l+kE;PX&UrU4bbCM
zoiBohe3txp+i`IF0sY}{{1{i}%@}{6m3bH<^Rf=8u)-fRIAvu-ucVh~m)2-njA?81
zr3#RDn@SmKl-vVQ*xzzR%YhT9)*<z?UPa8H$=o@>(WM<l3fw)<rv(W?ku*|cc`Udt
zI(u5HQp!eGK2eG#l;__UJ6kk;%S^Ao(bbnV@N*Niu=={e@7&2Mv${er<ycIUx&^Mk
z@rmkp@pooPtF+w+eIsOpw!x#f8tB}ntZ<%HcU$U~gM7aq+M=xq&+e>k%{~9<qTcTN
z<Ejod9?jyLT^Y~*wsd@SKv(l~biFu7NuJR5qyq8cR-HmbT6Lo#Sd<zCXQZL&0xB|X
zH1c^_+sy#Yyfs`3Ct|Y2m9_63182rkCP@+WjLA|oM`2|f8m-{@worI`mn_7OJ*Xd>
z{bMp|(4zVdCFmj)r^j(}n}Vj$EK(!YyBm}$)u|EOf76ULllPfud#TJ;$8Xd|=%QBX
zZ5(shbKJ23dbeiioq)7$4f!man_bf^_dDNVtM7Svu-txpS!ThoKmCxgOU>;;g@jO_
zxN5UPA*U3n0O>}yPOlV~X;Pt6o<C2!$*V5d!U!i$LRX;qn3ZaU>n1;w8r+xyi6f;@
z7*L%LxP&REIqh+7i~=2rM<X-MRnLvlef(R>XDqe?kP#N8^7E`(G2RsFR8%aErjbT%
zA`_>%Tmu{;!Oy#Dohg}8AD53yQdRTd7&jnQ=zXK5m)??YJ@KV^^5tz+;ce3^$AMz$
zjAl7(72T$Wd=}Efdx7gg0CZOT_+gr%U4r}V=jpH9INLX7&8aVh9$|=NPje$>Fk|$t
z9nwqL!?Z(j1#mZMJbkXJeA9YZh*Z%MMLHzpt5dkr=878>3=im}r8gNV8f}<U!5j-x
zL<V03IXkL?G$*tlC`f}#Z#>3rT}iv@I<K#TZ{MEi)MjAz^6BUs;ClpRNFTJW!lh!*
z(Lgn-dC$td*&eY>!5Rs|AbHGqaO0iHru|YEbV^s$%B<;?SvEo!g-36_0eTcrZ{u-}
zQ{%I34*e*N&-;P+?LQl?UVk(A@&?F)8pyd4pPC-M7(GZ^=2Ugth;D5BNd=H&2g=L`
z`;x#o(#g!`4>QmKA_ld>(}5SFHRrEc-#tnclraVm3I>!6tYwiUnv3ZbD3LwA0MWEN
zdL>gX+o?$+vEY@4YFc=dPpNbWUk{&WigQboxG@7ObpgQ+fva*fV*{zko#x$YGuZts
z+W0fo@8VZx#hEWkBXp6BxE5(xsPhKsVb0q|b>0TZcfp@8ipKmfl**lc7B6kSt4D!S
z8e9}ODPTZ1PF<#r)eBX{oY3~pAJa73YzBXF&y6rERD}XX3gmqusZzx^!2)dqbqCWR
zxz%$*hhA8(K^bU8?uSqKV2X%3aMihR-DsA=0sxDKtH{LxGO-$v;dA|on1+Eq;rnxA
z*MW4hw+iR$;p(3$BWTs(ogRg{t8kOB@y_?mgI1YkBlL|t;(sKXrOQTVoAk*%D)2>d
zK<r9mz8^~EPWOoiJMSJ?kI&$$bLBK`U3iEx=9))et18rMoDW*7JET&ErwTXwA`Agp
z1wahzkXP|TEAG5e3JFt|1%OITDH@3vIVx>mU6bXWM+)t&;H?Y>0kqL1ZJMS=Epb7s
zz}*mj>O`u<!2psGn#46@#qyTHJ}uOFksGSc`^9rmbnA;ODsBPHm4C1G>gf|fG#V7y
z(v({K=t5(D6kwhe^|A<B^Hyk<yH%8J1N?r^)y8p00q(A8m#!P1M*;W!a_QW-Jau~X
z(f+t!(*pfIB@aGAw6;_M(<V)Jo~1NT_jt2}LY2TZG4uw48tz*vTSyx*`rah`h#JMp
zqA-=lXJGeg$s++-ED9Lv0YGDNH1Z}zkq_E59Sg0*1JYDHglM>MW@)yDp*klbAJl=f
zt&aiq)I6T2Eq6PIP^MJNz2p8^U@YBcz{LyU@a0E~>}}6<!I{4i8=>=1wzN*Obj^b=
zk__>F)W~sYe0B-$`)!C0R&JeI?%BtKQFZ%;i!?d6T7ln`CbzyugWgUJ$fE5ARbq?1
z##^O$iN^wrp;Xsgi2`r|<TwVLaVmyd0BC5)QIR8tvls0JM^xF+Zr}dCXe@Yh9s3WY
zs$cHa*N}RXq<Fm2OFPO7o%l2Y$V{nV_khI=ix%v9p)(JKlV_?wYRt~{`U!q8gPU)g
zZrNwLq*RVmBXr*2J<p2#Pz}&KRqeA5Szh#TiME3!+74_!C})1B+t<#%`ZyESH`XV#
zojgb8it^v5)<uIY$v@!4;Wb`()iUS^)`=&=KRfQ5{mD~}d9zmKg_s1*OV5iODio@@
zWj4hE=o9VbrqM*r#EB4+Kn(C;rvTtbQ!~x=IU4fhl)`myPn3rz4}_Ckr$Aj$btb_V
z@;yi7IgfPNeK>AiUMt>tpg#bUundyLc<Wu&@8+|!<jmhFQE~?X(5@=-+i#os1Zdm*
z_+hA&qgvS>wb6M$@H~o*?O_9(4+HM^x;<LD`QCCIP*etV)<!hSN(!oD^N1Y~OX~H>
zeXgIaEpEy4?S_vEVe(M`5Ip!et)+&cQ2@u3CyciSqBe=-_|SNCia&5<@P{veDupei
zihMg8b~(j}><SP(0o}SWTAe#;#?%Xs&yy#)_c&<K%HraNk0jJ$ccQn)($w^K45i1#
zM?&2ca)SeW(Xdasi5u^}_c)ks9kmjl1;sLpio6W~-xtktlBkqL;=>OMyz^>&?zbU2
zSl;=rwKAl&GIG^rf5|%cKaNHVsw(x>yr37WlJn}zxtow2t`MC*t10zSpr8lKTSq@g
z00g*UjJjh=a=BjvU}-fBnn4j&F~B>Mbf8QCKSunVRsP&}Wo*Ke1!S$zKCs(Gr49}q
z*`g$kN(Of<K72p6Bo9f6c3z0MIqMWXfm#kU(ROkSe;J8)P2pMMMuE3mkVPk?$#=F%
zrF0GMizZoIlt$=b0DRvWpo>JMbTREYtMBjkN7go9-bUkdKMm2U{tlK`#y>FJ8M-lk
z$MXsW5IbM*fZjO_>B;_pvg-Tiwleyos}s69EouF91w>~&$HG7<5I8RSE`;F3Q)vRG
zna07PYRC6bsSv5tAS?xPPdyTa+6cw{jYr|Y8@-gO7-1LVLTMD7m#>GPv!iV?<<X72
z7Ea@C)M2q%v^+apPBY3f^_oGm6vkgup<PO=+W2~hQ9Ka#Hdgawedn8;`QkQ056gki
zbON-k`^=)z*%r;x7O=O~9Bl*K4|<NZ^DjMW3cDIvtrUX_sTg?T*jAs0`aMHYpSfg1
zPp<aq9S`>CsaFzu`o@Hk#M1gXrU`1GgrWl;EDm@@6@n0EH$W6Bmy9doW0G8}*G#l~
z(1DlUR4AIQq1ii}gaVrH0}VQWwI|b~Hq@abG*t`9`z)pDNuGq!9V5E~2KsGedU^>)
zpkT0DK-0A0_^opEZk*rhU=?}+(cs1d+4R&iU4!&IIP<naebJ1#I*}&MDlKT<{CFGH
zdK*CBW^?o)^h;X}(Y3QT-aE84T1tR?RhiqmGLPy|3idFMDj+v5VaQYfX6XHI9@0B5
z_vxQq*`{PtIB)MzDq&R142mm#jevvd!;R7h8mY!Wx3;u5<-RBs1fy6%6)G3_qZH)H
z4CQ%+vS5Hx2|PX=%~t2OD3Zlo<b{Zp!(xyDtTV0lcQWyPk$?;gC&4;^q>)<+rDDsy
z*H%IUpR39yL*ur;`R3~PbZ9U?YSlh(Kl6DsLc8S1k3!Y7(g1CfAMbKZf7X0?SHRvS
zH@+Xvd})2-!^=e|9JO&H{FrhKDllgyOHiRB0-YOFV$Qo4&<7u0qo+ojj%&bxO*4j%
zs#O}0u}6vc13x5AhLcQP4?$7zct0eAsRSYqVpX5OQw0@1H(q&YCl$v+c#j*i_p$k*
z*&l^z5pKFNVDmI5(;#`NLr-u*B%g8#$xC^zk7JJ+e$A$ZR_P&ma!1mpDs~e1nwz%c
zDKD72Z#^!Yd6%HRC=;Qx1n_-LfX<U2pY@o2SF}r8w92gfSN7}65(H(ic53v={#H+P
z)WVq?(U3b=KqID7#(^T=uc*G>G3&G)tkLUHM*RwLt-Vnllh;+JRH>2CkmiAxi|Ni+
zC;-E>svjwp0?A^Ud$=jS=$TAjA~p^Rl0x!Bt$=kPw>3U5aw0TdNp=izsQkTiSOmp`
z%G*=L@G(=#6a^SFXO0kPuJ&15PO{5j`l>Xlk9P}|^?x6=WYKxn^hQs#HL!D%IrDk*
z=3O4M@5=m*#*cSFyR=EG%!)6++j*AHymHx4ak*av4bY(Yt^<dR10n_=Q~hroEzu^O
zr|s|@l}?edOS{R7)zO=LWL<p+HIU|>Vk9D!1j3xE=Z*O@xTc;w5aANJ)wCg0{gYJl
zKVjNsy#^#aSc=lCu#HC31)g3Vrd*{^B^ZE0gVuN+F@;q3D`M;gZ<fGoo;r<s_4AGG
z`h0or1v`tTypU#bF8zRk7<su}Mv%O17AZnqapsEv+_R!sjzXavXlQ7^0NwSteVae)
znpWvjJ3gyHp@UZGr!QUoU@xmV5zr{wv}5mbOQW(+ljtJt^v_Zf4k|F3(0KZ61zxXK
zU)Kl*{}p(3vqwvWML}E?r%2Y}L8PI|5258INDWD1-ZE9fpaM@ty@EhzG((-OK;|tN
zrXD_WBmK8=>S&y<_UqtfOoc|#UJHOys%$<N(=Y(vfRuxeg^q&B7GKZKxV{fp{Co}k
zJdih<3-yDPp-_g7pqcN*$-C!exV7k<d6%Hx^#IXfshH^YAI_31pLNsoe&?Duupg!I
z*)?CzAM58fKDttd4VMfr^D^qw&Y6p}efAvX!<7o4ld2-VPTSkhRp*=3y68|BfI_Nf
zI2)Q$D{l<bKnGrW%}@-_lvc;}n{3Rm=Cn~+V{9HiV37O4sureRsLr!O8<|n4I&Z#q
z-U)1v>qR5<B$HX8=Up4t*UwybGwo_MrxdCk$R=ZtMslu*X&t~(`e7Ba5V_YxCS>^?
zn<rSD$}{m`Yc-pm+Ib^$=8MFe&l14z85`Gj1>QwtvrYc{AhbyvYL<E5b`-wc1ZjBY
z!sy3_uMKMuuh1yGaGr`w572mR)dfxz#p^WP`j<3KN3Lpi8f_^TnC@`Rz^ML&&k8G5
za`8Mt&L;nieaAtI@O`6Dsgqnh!I_3&pdBUZ?E+qzftUZ~pSh8Lsi@Oj7X(<~Vu8Ul
zCv0{x<TRBCI=&8^AF@LRVT4Fb<vJOt$E9k*Nr1d3K^JJkVlow$2K=+E^o+<P{;n)M
zgDnYoPK9y`ds}DH$=c2$aOQ1+`l9mYi#R2E#|G%Ura9ZFz!#NPX|qB<YUA^$eEFp}
zz4n&%rM1<lDz68RJwpA9RTUnVG)}i@wE0v8RwJ!?L$!zP34n&7QWqG{?@9Bs2g*V?
zWdt@GqYXs>y78KzeC#CMJ22Ffrs!0v`}O6z(l2l)^88+`o`;X`h3aew$zxxx-+FvF
zxOjZcpQBVkm;o3AK@8}8EOX+loY~5BhX7YZDm}k)t5tkfHXERZub+r17k)KCynC+t
zJ-v7mIrBxV#uo*^kL1lVFIuHd;JzQ|&Ra`<RKRZI*t`9qJow0~9~p0NQ~53Hlt!;p
zoLr;P<T|%89k6iqTUgH-k!mnXkyh_basn80p%WO$FgO&!UbfJtCaQUs<T1#?3k860
z<Z<0(X;h=%iZn^bi5KHm)S!w$jV8ILdYtv8I@>dnMF&YocpU5&+$esoR1P0J$y6OP
zDOJ))(!51ucXLclV6+RPi0f+}i&6%jEk)sJ&W+M6;LY9mKMz$+c~EP7ah8>L7l6Ge
zpnlvGFLxap+Aqa&*b00R)hY*F6uJQRqf#YZJ0#*f!`00n&u@nG^2P?Gbc^~Gm@KbV
zpQ|;%Ofn6FV1IEN)JhG2ImYD~EJL9=AQxo7<HdkK0OEa_wCu;qvF}W4Ad3S9T#WT2
zQK%@@n}tZV-uw|7Z-^+=V2UJHFLbDL{0cwvoDu^W)d$t%R5684b+Qza8=$d_>0>c~
z#cko8pU;i{fU^Xa#i1F55>IqAXqmT%)h=kDAWkl}MW@W7YX9Z{QTvV0eO2a*^0VVg
ztF&dJ)n(PapW9bX-#T4}$%odaOLV^M(IhD7^>I!&cXQgRs^!z`71*q+GNcs$@<6~F
zDiU4*_<II12JxYc%Qub4QUM)G7WlQ4;$oOvT^uq|dzetGew@P%6nUO4k>{cAczTf}
z!fkP!s&2g*=`U4wX(R^D+2M+3c_5%X5x(D5*{K&U?eXhPGuG4#U79H^lUq$wDy1pP
z=i+_<D_{6pr-ipLkY|e<P9JW=<f_g4pM<cAMXt#2O0yib8lT0_+N{poZfY*Nmi(v=
ziTrW-%`bn~unZ_JjRVrt)&DL<eHv7s*C?lFZ={q?t#e0QIVFwBfd(+tCzXm*z6Ll4
zp*A<cCHsNQ+*C9Iy38@NSr(d^f!CZ|@<N!&sOp4ntKeOrbD>@<@I-+#A&w*A{vmO6
z)1^JBimmP*&_E?mL+*TKlD!)BK(yje=-~02unwVsrn18bV{Nz+seg-0QsTz0>?Yz~
z^46~T?|C;wXAvED5_t1yzreYO)p*y{`C)*5UX9SBg8RLGcK-6sAM8!T25iF$MYvhW
zwzuE97SlVc67rdGMt^!^O559(&Y!OUv8N!02}={GBoER)7*~OU2&8eCOXUsTBNi1)
z<60;jIDa_T!cr^f5O%ha`nSMirA(C`!3cifMYtiXBJgZ(Q871Dnev?Y`dH1vbjWgC
zSMH%KFlnJta?IcJqEwh#v4U&fo!0!gqjZGd#|J8J{3`f70||r9MUj&@PCa|{B+x5I
zsl?j^^{(<mXE6mDopc)IBvs=F0qcYE<##(iij#P-I{LBUjX^^hgrWL`#}zsc`i9<j
zc0lib%aERWbxO}%n^0VV`sK@du25(d<aRPxL6&H|5Q);GNVpjab16s^-2x%t4wVc>
z_!&t1kq-NS*KPuyy(%3G0ld`<iIOw&yqr&pSkUtItuECAKF!ptENo8AV(SJaxNlh1
zk~B1@nND&#8r^ycMAA4#<|z!g3aeUtcWx4^0r@(W-2sK!V{OwaUD7LEHapv-Smwo%
zw?eZV2jD&oZE}*U@ixHyepJf?Z+-DyK|!m%G^m4_gSs-0LhGc3?2^dMzOVxIrGcRj
zJhn`aKRBS@{_-}x_DW8x>qMtc3y+<Oxm8c4h-Ik(6byWU7u|*h1Ia;XN}`GBq<^>h
zh39^QlQa$vd^oD>CTrBIxKmNV@cB~#XBc&H6%7gq`gB<B_Jk6FNf>q{4zx4%j)56i
zUvfd+;=?-msWxB>j{@pRtXwP#9V}Xz$E#aYJYa$}E{ix@6l!G_^h(<l%Za2}<^|ld
zq*3Nsjkn>1*oJatzf{YGhi-nXH;tTumgAx;5D%eBsQ{eqW`hc;SQ6+aJgeK!or>s(
zKX97<;A<oL%C)hxu04C6n#I8Bw?$)KieiIl12W2$^Uq6<B5^8?TsdQRjb^XxkU@`|
zhEDY&r8q!7$-M<Z)Fr6gAyW(k9U1}+6Nk!Gr<rosgIGClzAx`O5>npXy}4v@N+jB@
zyiKC%bn;^K1tklDrri)yrVCAB^;+Fxf&cL$IM`gD?w-3bD{5ty^vbM3eOBPz8O_p`
zG_ei-eHKm5wk3yMjOQP<LO;yy-|#b&2dB<&{d>cWxY1(+$lbt9RCCLLG&v2@gSeuu
z?(l)fSLo3TJ^I4)TeN-4(%NYOY?83%TpOftMx;=ae&T5FkkKB638@(s`0+p{KAp>9
zu6DGbKft>~g4hh+NOKj`3<i_@N?vfYSzMf&CfC4;(4&e%xkDn2)1J5}VnE1U2i=zc
zDT_}mMq20%pjt<R)p~<OB-a>5(-q4$l*gD_=@Qi2q+b@9dYOqdaTZO^E>eLGL%Zzv
zwnfPHykCX>@MBlr5eMbNgEV%&<#p7Xsk!nH1471C<4~Ls?XfVY%cpwup|`EmKYwYn
z0%+R=JWMjJP62|EjQK<6hhPc}6#>LuLp9u+7=$TO&^f5su>*i^9Uq`$FolT}BiIEL
z9_P&;smLiKqaH3KmIAKwFSIEd#@e(j3f0=Xfu!4pr;1V+mD2N;ah~m7m2ad8+ca<C
z2*!^SC#!AKDvJ#4^9J=r$O_$8Wj;%arOW$v(e&)vKx@(b%P+m@#wYrdr~&FwWQ5?&
z!`M*3pFtf)0Z_)cd7S`cX*G=KTQ2tLmYp`%v5+m69$<w6=#exEBgxV91C^IVBc7F7
z6&uet#Z5~Js6!Rw76#I6QE=PN|D{yjI(gMHE-DJuIWZCi4nK!+s#QBCG{Jl4;xA*Y
zM$P4g(mT-5XSoO7q}O5T8y7|FL`pPF1Er~gXnMM9U-Lz5hPKU*FB)%t(Cg_;ns}6B
z+v3U(!(q4C1f5mW^PqhBzIb$#2NxdP{As6Rp&H0TC|JBnPDiVl8g6U}9}z36j*zzP
zI^DEGn)bFSE^bypyV=k+pgiC$?##AGDF{ED0$wL2yvhTmLm1?Gk!EG~W&A($_-`m*
zK-cslt%&{V7&HqBFyovJAY1i0husU(f}oITDrZvHMEJlsnu_Yiru({IbLvPzvb0y0
z2>!g$>|1$#Jc=lc($ll_H9zS6PVx}ZLeVUDtITIjvCNtqKW@G&vzYYsKi>TID^ElP
zU5?YR=EYg27}+|wIa0oy(Zm|lI1O?oKA|CPnG3WVoT0*|6@Xu@D(9Cg&`dPpUVyC^
zDd-uggfaeZNf!-NwvMv!nx#(t5vme~D|xmNC~nKrJhddin`$Ew23p|N!L_HE22`ZN
z-KUv?ek2pCL7;h{<W=Ra>Na{Tc?y`^s*|E`5kO||_4?OUdVD>07Yyj3+%E{T)5k$;
zJ`3)A(RuT>0sKIf`9Y|Vc}fb8^8MvUcFqr%v!$~S?7pqq8;AXVvATRJdCc*m#x4(6
zllMe{(TK9BT<;CC_n~<egdVj}1lK3y_$k<@I_aG?)7|a<7hs;mv;^P2eQW7o6{X>w
zGu?dc)Spf#(d6n&r?1bl>3O#*{o-40d@>$K%^;2g)#{sCO=1<urIIWwl-dbT(`Imy
zCc#p5zX|P3{<s418?IefN{JnWD$_&r6Djn~08gm$L;xFf<wWX9?)#$y6xm7^Njw+?
z!sI6C6*la`xll#(ztc>csSMs!XjNYnnrM`Y)*E1pbR(P#{Qw8tR(k-hp-D=$6rR61
zdI3h$KI-(LLKi;ld{C`pR}lpHdKa8|m-NcKs_~Q94Bb<iw+X)U9KXNY_h&AQPMy6x
zy0m_7^5(PWCr`%xg2DTp>!*ruDNONJY`YyOSgn)-k2`f+`$)Ib3>q%sM!3^L-jOCM
zFD$JkA2X6N!^iPt-}>3<C!LQ+R=-JIGW~S3nTjNOr7>7a)9|@6i@rA5?R_cF!dsg+
zm;P0rhNGL;)?OHG54LY!UESyk#9ft4)9}Kj?Y}y_KCE5?>z)S#Ig)Z*MHnI?E~L%y
zB5n09x(UaUMzlTo|Edakx2{SB?CSGs^;&v{S@0sa9wlLnR_zRsRtAU2<E{CV)hp~`
zIE=OV$&bNRwo|vH($KWZGxP5Qpo!+F&!soi2B?srP8v!8_T=f)Z9UmZGTejRMJCgr
z{QDnGlz%UB4XG##Ednxc;Q}|F70T&bsp?AvQ(G^t&lIa|=X4$??);lJxn5=71;0Hn
zWy*tZ*}nY9w`{%h?1kx*!?oo7Yp1dgg%!YtGDL!E$^lBCVZ<0Tk%F@hBgksNDa0fy
z0IzA(QO^j-a3UIb*xVZ^VW2VM-Hq|}941MTHUaS_bw1a_;;r#Y@z%BV<YNpl7a!ep
zU{weZxeB(3zPPb5`26n1(jUBjZRP2zqJRG8YpWYaZF=&@W8Z$|U+d@Qa+C*Em2B&Z
zoI#lboCSO){S_LYdVsbEr>li5qe=2o1$HkvS_NFLzYrSFl@PB1o->+%05WToOV1?w
z4OJ*Oa2R%x<ZQxY+|u4434nhXsGDLay8wVQey^ZJtYmGvcsT+1-Kh>V!Dj|qbH8$T
z;GJmY4C?~-cOg<m_xI*KuG6oV8g^klP$#hfXxt<v^(Y_(`zXp!&$79Bk|>s0gLkJi
zOV>@yF1hahporh{ts9SBdSv(AXD>~@ckOig1Ixqm0)lxlcv9yjO7$aK`q-0x1!7~0
z>M!*gXC*2}aGKR^XNUEhXqs!o%JI6kt`OOlB=tNv%2I7sp$Z|7b9LE~k@BSemfKmt
z`c+>fYKS<0^8Dr9C(mBmrH9{sy?&e`xW2j3|DDa7!`~ZiE`Rarl~d2Y^wslM_6y>!
zdaf?^p|`&N>Hbd4EzKHy7{se%xeCorou%x-2Wh9jR2@5^-SHPI@VZ%nSXs*jbB{s@
zl<uf$8u2YBHKl4s`907#q;yI@){%N>vH5kIdZ5QssBkMB#_Dbeu*0saFRvZ{ju~)!
z-c%?!f2d&i{QiRDd!+F1V{M?n7Z+J4e=p-i2ZLM%?Zww&;o+esG*#VmBTX8@b-;Fa
zBD)x8TaeX$EErS@M9*$*xz-kEz9<ySqJa8w82A5%2I#DnD2Js?-tzX1M<09F=J&2&
z9RJYTdiwnX0c?QnG}nQatkj_09O*2ciBcTs8?-MJNbV)vupdX7X>|u~bCPM57RaCn
z$+n!UJv8w`Z<xkUtZ@~p=!Ow*){Jo%^|b@oQB{UUDG4<9tXvT22OE?Z&R&@O=-Qdd
zj~a7}-u~Vz?x5*z|DUG2!+-X|bEkf%0{5qHU0dC{TlK!YwzG2a!uTiqFD%t^I9UvX
zvuA1Y&_fih#1(Mv(C*F`tJii^KOfoI6!O};fMV+f4@Vl)rVq9^1`bo7@Mm$=Xs%T>
zDq=S%l<U`p*v{hIT&*`Tab8wu=mk)Nih++xPrO+8ybP*Po$&RHWI~e@ix9Sq$H{~{
zk7KnM;O9S<T>%3=9}hno7xtWJYEYVa&C%S`n=`nF>ha<?hw(S<b}I6CCM?b_8pU#4
z4Y-cWxc{AQJJit7EE}A0uMEHSJ-5E?!MAMxx$_T9K0O!~k7H=V=NcId86a20Sq{no
z2N0xFdC)8K$I7riHWhF%f$ElHF<I*MbmY1htBtFZ$_=2UmO&B$=2+x<J=sokwK|BE
zkH^Gh;88Xty8vjq-GU+mH1O(xhTHjo%LJnPB?kI@GjAXToa)-C<YU=V^09Ya+@vSo
z`yy>`$D2E^FMa*W^DD1B`^RUl>~8ha>NQWQ*WA4AJuf}FJc%MxU6iR#Jb2(74IX`v
z$_icb;udXgKU;y-)IG-_+)I^UYO?f(bnsj;(OC+A&9B)|az0t_jSAc!yN4FrcnfAE
zjmk!w9_VxRy~wjd=^5y;%UsXn5A2{Bi^XIr^ctukzAtm{){_`Id8JS%TVoj}@>Dvm
z(w1}O@;ey{jRMVhQRtvjC<_GM23(X->E)z)#$k@8lD~P^APvg(<1S5{SG7KC@b0QA
z-&2{l!F{*cz<lxpufO}PPi%hr^!e$hdp&z5^jz{{nf`OmazdeSwd`WOs0PN+XzUh}
z-+doyK8_8JqEN@sPY;w=Wl)Kw>UXI+ebFsT_%OJ4M5S5pUxX9;-Xi?w^nF192;_k-
z0u9Pi<!C)LU4_d9Rls-U=Zgvv$vJd;;tsq_<n`d|U0uo6mxo*LK7DEH-S2$gD|F-P
z@XGa9hA)5Rk4}I6`~zDbHm~=ncYcl5-u^H}%W+l7ZqU}w*QygFO>Y5<7@xl<?tTEy
z(9?heY|$GCJ##96{M0j%auw}RHQP-uLqHr0SSiYw(khM8*aXPGm>fmJxv;up;>U9;
zmr^G$8%|!T`OFK1zydjyh1u=o(!KJ-K%T$rZxp(#!y<(9;}edGgvXb^J-#jmeOML1
z3ZN|Z_E;LKitJ#X(!^O-;)|?gX#<px!ktHL0`*acd(K>#ocgv8T>sRY-!}T0{-Agq
zcGl4Fa^L~@Y<?s6rSdH#-8@H?XjHx6fFP>5@&YOFQT@gXWg5{~4bTM#8e$kms!L=^
zI(yWxcC<@8DO+h3XpBcCfH%c8`L?I1TCtV(x7qj}Z*n|FS}47f321TUwmne`)t-^+
z-RR=ts<=$Yz#D$HU=ys#!z*i(hc7*P>jP)2C!d|3P=0ooO!+EJU*`!!<*?D1gp#Be
zs=tUg(cg^aTW_2Z;0_8IK@Xq|FnwuDrAa{HARq$tQY_>946LCi4FnM5^>(TkvEGIM
zisROM(mSaR-IY;&m+X_)AdJ9_W@o_XsGjfXrTTT|*V{=U``X{&4AFta!P(OL-ILNo
zSgi5fOy>0wM75HM;-#_8Ep-92)}vkw{M5^pMUf`X8rWwA>c@g+X=7;UDBo9r8hqRP
zZ@l-hcW(W}#mmXR4eL=*BY}VgD!(XF8`aE{cKP~W44Xt!u{CKg)ots;y&(jpyopwN
zsy4}ry`aRw10>qx(z`tjbrc(l3~b>MQwG%v_*GCeP`kMG!sG6lJ_$*J8c3-ZKV+dv
zsF&N|5*UeVVMMCLVg442hY6GeXJF4|)Ut$3uKIpG<!)jH)Yk%fHOi@AtJ`W3?Q=Zb
z+3NKX@bc9nSVTjk4u4KoC__9BkmdJUc*g+HU|q{V$miHilqWyEQZE`XtpXL&7+@K1
zQIPXF1(Efd&zWAc@0||oT<m^Wu>z39?WJc=fSm`VjwEq&u3?&K@P;2Y;io2{q6STf
z9TopR_*j1aB+XqHkRe3}f9|BZSWR+m?29$PpbOgLxJVNhp&_~uG|RjinuB2(f5&%U
z|M+81Z2#T<a`6PXN#rsH9(RoKYE*~d$_wv}7YI<5lID)a8Y(nYjj3!^1F!MMTYhlb
z?v0q#6h<N(D;jbD0YsEJ4~|kRFN7jsdT^4ecgIp+Q)vK#plbZ8%Z+OzC|I`mL5;J`
z<2OxITZ0A$a^L}8NVPu^04d}+V?FM*te*!1rF%@ST&qVKOhfnDt>*!~wJJv$P;M0&
z-I$j2^^Jm-s><|C1?o#HHQ1C=<+{`y(#qW_QKXs3uR}lfs3fa9F6>m+m+H#4lzs*H
zcCLWYAAwFCbOl$^Sm^OOG7w^+gxnA&UGN}BW7!>JRLhM8vH9J3N}NW0RA|M#+^cVQ
zUgxAci%`@od^`j6c&fW8Ydjh!Q(6bR3o3P?>4|~`oW8#s#P78(BFfcS>&LqS_AaaS
zlbjoRpvt^0kndL@{{D|%`@y%oWBV84zI_0V$wndw#fF!lUflNPH-U1Kkc|~`d+5pB
zz^8&E?aA@*r^Z&D-z>WVhFMZ87hHIN42(EMgS=6DqCY1A1S4-om;569JduVOU~D}1
zCK@AIS&(vLNqKbZ@#n#9R;_WQ4u9|vai7+cs+rna77IflZ+xbt7{F7nS;#=??#uja
zb-fp|xcc6@*N`o2`_<~WTz&IEg_`lQp`GgSpRG#KufLK~(6e;mY#ro0MK2=OT@Wv}
zxx}FH#HA6Mq3<~(8tF}xq&jXWJ)r0bWXHuHr<b)!3h)Nk4qx<vRLKQs9#Z-Xg#x}W
zBs951mZ&$)8%gC1wbay8!0^9o5-L#?N)7R~_&YM}1_si=#10{VH#(`33HJj)hoNfJ
z1M(~lto9LXskB?$(!`VObG}I2`F_FrP->R8zxU~s@BE(Y-}m-!-}*;OOXXVuJj_w|
zMM08DgUnBcSzD^NvOSs7W0NDHvYW<dFI0s}Q>_Q}mfp%6JodKCrBtr&F}(D6ND2YO
zP^o|p3B15zcv%lb*X+(KZ&Cod<9_A-Wv;smOd1+bzYN6+sxJ3t&i3v|(3}O81O*8y
zb!Q~STYm&L$P}V+Q>F5J1PGlTyilN`ETB_a*lgu{VQp92j}66x3fQa9rKNx_o?W8%
z2Fvu^W=dbVIiZ`ks%m|e=+b3bko^X=ygtoy761)BkS#q4r!QM9z0e7M?x%+8pcr}8
zKYs6MYL{M4XJ2R*EHX$Rg1#F&0K9%fI5G-tvn*4e*j+WdC*jATE^$H3g+|sTo{x)L
zz%w1o$KN1ihOSXB$|+ns{@%Fq-yAF5=J!>|+u=l^J=3Kmao!ZmB5~)7IP$-zGVhuf
zf7_GWkH6=;U;poxSMv`xpeox<ev|Na+z7CvIxp<rs@OFGWjo3s9*9B&iV{#WG3k~S
z(lk_Zfp};1V@SH{P~u6l*MSe$U_DT9;FODRHCOP}oA2CeElb1Bp%?0eD1Zw95_p!S
zM4BkmSipKJlv2PykVOrkhpEb@3MZv`T;-kDsqILY2kleJ_Xul9q#?>L4?p)w^&B3q
zs`5Z~8L@2X`_(GY8wS*0ssMdxDCh@dDsT_0gWmB#pWgn!fS$QArKhis=}KDC`HK~J
zFKI>TbIj-yVA1k@Z7|}W$!owI^lqY6spGSy%Ey##VD`Ey2HrWa@WP6gjOWkd#md3Q
z1@8}D#8G_@db(TU->a3sMKo{=?>z;oYB=!Hh~($In4zKT8;l`N4oVu5#e;K3@jKql
zrGL_xnCW9W&Ry;w8XL`8ns}1ri6;frTOa55zh6I_Er00yul~(T4^4lj7pr0c+;1uJ
zy4)(r7P8gs3BPDPdPOSy`c2ZSlh%FP(E+&Z+oHQr5fx(21Q6h6qXV!=01!a$zd><X
z8hks6>YN>&V@2D|Z~m+Xy_;J~=`hH!2M0hKP0&QP(EL0x_8oW$^|7ag1{X}8;ZmAv
zwVqq$<}om1QC$}b4hT@d0+dUGvyh2M00RRQ+Yt1NfX)<QQ&rbhxuISK-n~A%B^nnI
z=Tt3-hYM<NmbYIV(3{Wn=?|~$(zWXeojF&%hO3@A6eOIavP7si`1j4f$DN7F6+y$m
z?iIiL#^2>OlPN3&OlR<n0cA?THGc<I8^JKFf;8253on2iBl<3iPUsFaI0w>a$aCEt
z@ZT5@2yKm&2I-4c@YMSo1$8)#RCxr7CW>`Y!L+R7%SkCSzp`%(x1f@0k!Cp#&WT3>
z?nS3r4pWtXLuKA3sDH-?Z+_Q1-@Ez042R_-uq;L82};0KPaZ9jVOS*E+bn~x2}x()
zh)RPWZ6I3fP;Nto4TVDUCW<t6tf3M-;OI%HK_Yr^=gr}{=5Z5?dF9baxmRD6QsjF*
zHR4cn8&erf!W3swcvF$30y`*##`?6}!#wOs<pC9d#-1^%(t(F|1TPthE3*Rbq3nvr
zqq^~VaT>b?4X%K_>SVpDDvv8L4|&(*wmS^|rrEL7*KXMnl6dg{y_Z(#Pqz$RuU@1g
zt5r2H%gSZi7T3Kb)Rd7%BlzG@s_7(Gs)p=d4L)RftAm<4n|NdWBQJEB`vLvfo5H;f
zw41adZ~C+emH>4lLt=azOA=XeGM0V`FU|#M7BrG?+l`@;$M4Kd!&d*>7}d|i1zV>z
zXV0$_d#->^vxW9kFs&T<y81$|-Ij|*uN)Wdd|qBIUETkVmHA<to3655D+V9^)N6n5
z+@<8F5bf32jE1VxFv72b+8D-4ZA9{i>*RG&U7@?lP7kP{AZeWKLgmW=nmIVdK!LI!
zY2y0Si!K8df;W?^zzS7<OsY5FXjgd9K;y>v8hLvi88v<i0^J(>Y8+5Mt}&L0oKmif
z`Eg^k`p)vbyBPEZn(&0uo3JeF^I-hGMwNP3kV)VJWSeoI+kRHp1f!}dFGJp{y9(S@
z=5Yn&73y%35Wkr0S6);PZmTDS9Th4=%Rv-kf%~RtNa=vd=&}L){I*y$l564L1DeQz
z@YNWD$D)tyPT$FpKk&CQNwtR%McUYm!@V50Uqs+sVW8QaC=@bjV8;FW^_gb3`Ie(u
zBNM54uD?rv#sCh7pne*aOIS~mVt^^l)IVl(<Y~x7bz_BA3uSUN&$Wr3c}|dBQ67s%
zu`H5AaS^49QJV^ux4eD#(f5Dfjo(;WE}z8hpiY9&<D<o!1Rr6j-qif2;OZxoaqq%<
z6O8hvSe4<StWdvd{=?_-dN|faM)~yIlZAnobwD4`p0I>QQ(V?b>qfS^4C1?6%2o6A
zPpppaL$e*p?jj0QVg}Qt5Z41=5%PSvNlm@-a<6tBiyyqUBeNGET_u@&*0QBenHHk9
zLBtxeC>`Cx>W%8(%W3R%<Z*R@jNP%R!Jh%d%21Y5ljNqRb)4aqtroPX`dp$cS|;0D
zqP+TkLgT8Uzg0cX_3HU1uDWbIQb@y&9RTJ!Pr%m;<0~xE;QIYg=OowWCuj=m?f8N~
z-7HrJ`uEZ3!f*R1JfD+9TrbgV$D)s26e8ZB5qG-)t6>vO!2nuM=&dx@sm*~TCAsEn
zBxY~978I65l_l4fi7JP8iMiP7#zH@#hr+#*+HPV#144@`QCvjbd6&)4eOKoD`TjlM
z{rdO5^SxXDXRk*?O!~RO9;;p_Xe@%FFlMi<DAW*WKsDWap+Kw$ZhU-C918hyxZ+7f
zNs>x)FOo@3jJEr<itporHy~t<g)|PG*;94S@n-$zL?8l{dY()cp&-<0zs!px<2Nmz
zhxulBp68`D0^I`F)5VDwzrgBnQYIC=^}q|wJ%Zh?s8dqmbt3`3yih>5UK7nlpK(uM
zJET(~2ToX*>B(GqBor8<Zc#m09#%lzTc)fxB-^imyT4Ka_>fE(Ro7d%27;xu`g*ql
zo14}7IgBD{DrD@U@H&^?A0BpS=r4pAm<cuYCoj|<7qr$S(;W{MHnsqODV7`M_rRB|
zR_cM#bAhTVy=XRE_r$Bp6Pf5lZ)Dh0sbcI69~p0f@OKfedXDM_s|95e)F4c<TgvhK
zkpgI%P%~%2f7?Z_?u(h%CxUXO3wmV{D3(QQiY~&0=v^D2Z8ST-_b*=icOQLh{NKcp
zf^85g_Xzr6-~|I?8xHq7R|!e;lPL`7eDOw(BITB$PJt?6W2~C+K){Sg|M?Bsj7|rh
zEY7Oo($q_@fo2;Mm;C1CihMHJs}F{kOJQ^&FkWH|d7AGek>MFH_@XRzvM&(2Ae66p
zI~|(69v+F+sloyrxx99fyuo>~>4}eb47&i~=i!Ns25`#y=<4%f8&$8nam`My@OstO
zCc1crvJ2-ZSy~~xy2kdZ)io5=eY0wTO=vv5N~6)M)$eNC5xW=|LIfNveH-r_FQgcb
zlzSF3Z+8UwAgb%8AzZ4xEq>2XJcXiEakjFwmltm&d?*46t&~I3-#fsylu8?u#k`R4
zFcZIqJ5wEq+MVu|kfI>L@6`u&D}{kAm8B`<_XWiZ2B5eR3<Z*}D@QXq&%JZOYX@FG
z9S1shO|i5A+Ot%%EDHV7T4m0Th9Cd2tAGFe<@B$aK!<q(UwIIyV<Eu1=N%Wwq#*yC
z8)tz`XToOI0eMg92ZRWh-j<#79dplE%5mJ8*X<V&D;nQeeZxma7YLUOBm87405aNE
zt`bIBes*IssFNw@&hOY#0N)ver8;b418ww$vdCFa=@61u-A1m@Q5~7r43*c>T^FgN
zBATm(H==KhR&~69amB|J%i1WS^`4=)LbBz@&(ZMBZ=!f@r8-|;y^hnW%6);7%~z}Q
zP8wig;BL&KN(Eg8S$K^5jq6DMCeU2QpjMJ;9|3?Dc;OYz@64!lFP0tGG*_idB*{m<
z{Q|-tAmf9)5sDI+a`_*SIlAV1tg{S(SPLK#2%#6CW+rZGR(SS6DU=Y4KBT3YP+d*5
zpwN%rE&-B83_BZ7x*7^SNL~t&^<(wQ;QBl!Ko^x_nRQciQ4}rFQ9M<C;K#52!kLTd
zPa(e%)hoc90;Mz{r|L_^9Y#9UITbFn7waE)UxrOGFW(VwYIOLGR7DIZP#$1VrI`Zt
zR3HH3T(+~IYY>9a$oT{qQ;sB?Dmaa0&?L0FP!(RIvh@7RjRXyo=RNN3Q#J*olbtma
zgH{zUP+sJoj=C49h8loS$c{kY)Z&XxDnZ1QX`_tc2i*<mQW4b^^gE`s{lJS9^fqW?
zJ8_}Qu{V8aym9x!a~I@e_;q%Zo3uATIV-&&;$p9U9}Vl&%eM6WQcAmbGSV#|x7qp@
zp45-MVjB96bg?xaP~JYEg#;t=rY~_DJYUctO*7BS2kM+$|3<lxxV58?Mbb!bxPH6W
zBOilsNxIj%H<Q<N;-wZjwN|Xum~TYp4~;Dfy>gOhmg5NOhpNnj&<5Z4BiH`!sdMR1
zL8iAnl#l>$l#%{nV|*RFc;h(|=yY8(EJW&th@gW)z<?`sREcQ*!Se%N800k%5ggo$
z)uj)*;J_QDFTE`{WPae;o2@#y_FS5$GEQB1Q~?8PAQ5sH(<}mg)0KXTy8vw>;E!xg
zfSqs9gg^|dFJmLKBxw*M90Cp1z<M$_NEc;5=%H!keqX)nMIAmL)Ae1V>nq!I_DlsH
ztExJ}>y_rJn}#=t8_)?<W}15q$VQr3YLnRknwRK<fib9T{Ao^b!>HoHpF@@k$_(D)
zm?3~Sc(W@s8m8?3Ui;DB@MQcQAX_vFb>T(|mBHXqUb|I73(j&v>+SZ2VqZHHIjx(n
z^@oT=PKkxX?RaE22=DU<mILB=ndjcF%;+_h&6KH`9z}CK?@D}Dz<yF~bB|P+|G6K%
z_O~uQocxCd{w6ZC5zB~jUz(Tv$DezZwl(TD*ca*q6^t9t59`2&(v!70TE(i1Af#~=
zs577c=8ci2F1{Oaq}6&M+kNu*_Pp3z5yFrPO*0A<$Sr~>%>U2co5otUT<2j`dpPIZ
zq5E~enS7-9o;Zl3D3R7cGL%VbFeo~tELl=CMX-{<Hjn@kWQ{=n83>@nKb#0M93_Db
zNHH9k5@ZNgBHAz&Nv4%Z6eY?WG(A4fd{a+%IA`x&RXJ5>eYL)-KKH)ve%<}L>0ID;
z-{IUd?6dc(Rp0uC4HF~?=nbiML#a3zQo_3f!50~Vu<9RT{M8H<d5Jl8jTtxC_Jhj~
z2quUK3PV5G1t%zC{r()UyXbQVt+{V~kmkt*Dww_Xy}t3{%zSbEBL93C%$Z|j9(-6A
z<Lp-0sU#n-6Gmjfw-fBq>TV-HzlnBg_UeTSg%E`mMb-x8<JbIsutN~lhG3A<X=Gp)
ziy7J-m~yArH6?6>qK@C=JW7k#R4!(`h)ooR;ey84<p7LH(u#(SQWsr&-|Fr)-cMxV
zK$YrgmtaM-2Cp4JE}O>4UU?xhK<{M!`Q7H*ax;qhb$8}}?Yp1)d-uP1_1`vvhsGk_
zK>%aQuJU-&E^jqy5JV2~#TFg{A}I*WMo1K{UPVI3qjuFiP>bD72g}z+1DTsfSrwDN
zn!y4ryO$yyMMzN~<YO^dZ-@8SpO-I_IL8Pkj;_v82j@35MO@H%aE19mC$I=YphaGe
zixM1kPf!eOV-3M6fQmZu+qRUL<1!Ik=MJ%$?;JPg5!ai=Vp9lr*DK2Ix}eYJ*1TrD
zeR*_U0e|Q6v3Yv^B=^s6b{}a$lSMkwIw{f)ut|K6=2m}>T@4F%z$9X?8+7rO6swkY
zZQ!G$P~x1x4&Z2|yD6|(>d@|BN*q2jfe6Y%G~JnQgO{^iz@k&XmTZRQl)8wdqIjHQ
zz9)vGc%J|_#l<CZ$s1a{uq(yuaH0*sP_q};L?^qe#BCpS(F4nAeKH>0Z4k@d%4WHl
z(98?UGk^Pgp81g%y=?j4V{n<0QjB_!;{s3o;9j}CU=skJPN_Y<bh|UOwax(obLCiP
zGykAMBot}nFQTxcD~$yU+icJv(?dxIwH!5YAuldL{n8I(dePa9QWEzu!aU0AMeL1s
zd3dcT(ioh1!g^z8hA?Q%30f3v63L(o_Y^lbO5zNPTrYgeEQ*o$!V!FPB??lO)_ldX
zH@ow7@m}9xueWArUC4LW|1WlI!k%{*t@*b7J@c<G9hwX47aYyAx=#7hV4461!9s}c
z8jwlTDmR;RJH0TK0K0HH(?s^PScLLIXm!Y$F?_2w#js;Q2j6!(jO{xeqT)W`eIIYX
zzbO4#a;Hvo$zfF6+=YaG@av7|`mV5gmV*}Cc>cyFA<F#wRuhAeDAaU{hx5YARupl!
z8vR<FQOjjCOQ1}yw~EU<5n{QU*erK5etzAZ`B%R7;FXWQ>gXTmVUpE?g(5lc6v9B4
z-3k<eg!{fzo-k;NRthkJ1&mQo3~zMXjV_NvevxdRseE#~XuFCcxT1j(e%29lVi5Vb
z7bRt6G^8Y+*lnHJuu(2OBVr^`_jyN7kJMda3(mryEYA;=GH*5)`)X7n3SX#sI7ZL{
z*gD`o=WI};MYEwrD*papT}bTuwY>DGPazwNb@AR`tP6P`(r#w4K2FgQv5Sh&^?P%6
zT|K_-!F}_AXAaEaWp8%x(S?pxnJLkzSAh>68xDo}J)`2pgH=3luvS{a+dIk@1^1sj
zZw$<HM{CNk2QXaH066GCJ|4r>s0^g|KV<mvO<7eqdi)Xr6DZEZs6$?K=<#_yd!X5$
z*&%WL|N1a)UawQ7Zzn$Iu*3y@6R~z^91v2`wYmW4^{OgV=k3MY;Ya=-1DoY;#?P;*
zGv7Ni?Y`w*mwt79p?0y@?X;Wj3v{!174OWobG40jua;<v83HgWX=ZsfXpC9pBVF90
zr+mgnCI7%i6Z2%)JSRs(QK;)?tuj1NS@Q5RlrdyMuv%n$?(HkP;L?Q+L=rE|(Wp&<
zAsSgj0mJCDQrFe#mb`08vX9}J(;-=)9ZnXr5Uq_1C7=#`pS|B>!9U)>IuAt};`)!`
zjwtf)b4Q+J`*vN#?S^?H-YdK7JN^3eyXN0rIWTrzoaQon7>Vu&Ilm*^8@njj6?Y=8
zL6Jr-CuoI%B=0zG;FTA~SA>@zOMy$fLa%?bJJSvvMpuqtsQ7quGQNuMZN#VJISjfX
z!jt3kTY5F+im!D~UJD?QSd2$mln$0<7)n~;2Hk}o3o*b`W@<c6D}hi@`19_N*g?1r
z<Kz=|asj?A%`<nKpZT3q*zfkDeqEh;{CMYgJo^ut-oFkPO+4=)Nsbq2Pl6spgT97C
z7OYYc(HX_4Ht@Mo5Lr;v)7QYeTahq>+BOJ3IE5Qi`Z|19f?)DF2-t6=>Jt^*w$q_0
zvOnYfML*qxnCrNZ#b$j!&pajFlt2YdtBVs3S+Lp(LaGm*wuK6l=yJewnP--%fJSlF
zJUH|^V}RfVQhOZdV@ZsE=%_RIPHigU`->*Mf3d*Kqch^%Zk!O)`-Cd8d8`L)XC7Q1
z%)@oH>t{NYMZsxlN5kGHz{UshHp%XZrrcR%FOyJN0SDcUVe#$+W`S`Px_Jy7!D`7C
z!L-8xWi<rlw}XAOB=zK?_Ir^z%tQ)e3`XIq=t$`~3M-|hl%jZtE3bp|9Kvi=ORy(I
zfTKy@XV^jDobN;-ikLqq(SmrL$E)_j-OOaUoAL8I32J#x*Tir9=1cFr=f3gp<lIfU
z=%RdjaC&hxvMp|!QU!{^6$dIb<eOrE?Gkp{NF-MZ;hpKl+jpg_U?V3v3xo_VU?(n$
zUCD8djDp0j@MUod#E=2@>hT(8o3HP=XVaw~MX#32>)#FPs+hZJim2l_Hz)xo36$n=
z;yj=;+JUd85~c~ES|p{AbCJjE7$mjlfh(=Kchx3bI6^CX^Yt!kUBGvmkk~{`7dvsg
zS=iS9c(G1ERe50jM2Gp5UlZPk29Sp(IE0`t%rq<oe!#BR5-!XtUfkE<bV1I8T%-Ob
z7;0j031QCQXy;%Q3Yv(CgxL;glPjWff+m@F15x!kDHOCf*G$y}>j;x8O7cgc6C#*m
zr2Dl&7uaL~CJIt;#t|AlZ#9z61oc5rcs>@5phM!=Y#azJ(v9}=o$hD;LUiqSBirTq
z-1fxI+^?^MM;=|h=+$pL`lVRF;>Y2j@?{u5C9d<N5_g10z*hqoYdrBA3XNb_!@euU
z9o8!Dh`}2~9AG^_Js2;fSfG*HxYKKwcJJP%TR)cc^%xF}ZVapjEG#1>!(iB!;GB-a
zD%y>iSM20>_cnI8%R_aygUu;+BQRh>M~aRcJCTW~abVPBiksCfxaB|xh9!&+BB5|y
z9&aG8d!A{{{p&)$w|<`cJ56G(#6lk7fq7bFZSIz%dNs+*Q`&P7J%Bas`8{)HuUQxF
zqnyPFn1wBkE#cZOlvGM|^bjwhxYsm9z#+TyGHe+`P_Sl38T!VVNVJkoMpS#sXlcnl
zfMe(y8rlM`z;0r<*F`8EpCsM4o8uUFX5OpiEJCxBS2<FM8twdHQ5&&#sD^X06AkkL
z?O}&9I1)qoa`9wq<sgMVO8;TeJh|q=3u$+ItBd=Wvm*4S4nVgR@yuTN*2_P?J~_{z
z`@&}mYoKgKhZ+!6;@y%GG;@lDZ$3Ef#BEb?j!7wJNpLgov{RqYw4g=UU?o<$@j{Fj
zc#>?3NCtiyxY$;sc4jj7$^%0~7&<FSy>yFnam$;p3wl`pF2WB(RP!yxzr}65SU?K|
z%c7+~;w)yd%IavEQb9TSQVHtixPVgG3+9Rr7I<uY{Kfir_kXD~_qry<yhXa)&Y57s
z>-WrX=26p+{d#fp>-S=_UGiPOe!O*8KAW2mUzpkWmb*n*AFC%#H+^wkSdWV02e<)U
zFPJEf7H=F&6H4qGP#1!>d#h$#maG-Bb+930EP-|4V-BHJgkPZa9mJ0w1JRkBE9_nv
z&%v~NTdCE+=oItsTGbmQoZqQ9sgc(+5?;@68Q4eQ<tKk2rvr90DPUYR^!nm;btv?(
z<Kb#;0brWUVgX&&x0h}uymC7*^xFlq+zC+2tt$3KXU^fyZ}^5QZ|nEmcQ)km*NH(9
zEM0SQxv)}zb3;g!y~~Nc5I9&_x{Q2bSamN%w~9q!APzN$JYf608ua!~o<}V7xG1t3
zv@7}LfJxwQjxHKzUrXY(Ck}Gl*6(Zz=ge;)n3!0<KW++n3`b7?kBW<;;4#h%cqhFH
z@F_83rQ2;@BeF$}boqda;@>S~$B?jFd93}T#yoVPF?&sGc6Y2fGvDka_SO&VKXYI{
z`-TsjasSQh=WsUN>Bgrdte=}(zdy_M{XVlUKEwJx4@`S}asAqth0zl_NgjB{$4{af
z=|Vvh?P}$#p|mHfJ0d_b82V-G+o%Qs$IXdQ2yhi<FH?1{b(HOi-64XRL33QuOvTb7
zJBf)|Jb$7uOZ>l+lX4Q+B`yS)kM;a(CCK||P#$`O2}glh3L`G7iq6)mLKJk#EMSve
z-bBe$jm%>LiO)8+6aAC767qN<sET*8P3|2#07U`E4dee^AKKTy>G&Tex|~$}4r)l+
zQg@ve&rS@o(n&jR*c%!5G#dA2*e8QR8W7~nvUlUPiwy)NSUTZbt2D1vaQc#R$i<!Q
zSTnOiZi`?9VCGZBO;3WTRx$nnxI~5lG0-5U@<i&{f^tG5t0Dg1iYz;Lb!Eh^gndQY
zPNTq}9PRkHOM#2fSKRK;V)1xtUBJK4n4MLVejW>WgbsGnu+yeRZ80_GFAvs*d;W*(
z*Xq*y8N-6X;K_m*8oGf_2<QpjXG;vFj=Xo4PAQ+OQCT~H*5-}EB;bW(=r<$J9pK{3
zI|r--svveMjIU>kBe3_De7~jZ1^nf$26YU=Zdu6r97SU*2^vZF(<o0oyE`_DhkIIt
zFuVoMereK<9tGUA%3#54AwDPY*^?5w+dK~hP-A!tt7AZ%={y_Ti~li;hW>w63w7oU
zt;CP7`NqR<?q>eYh|`)t^)h9ePr^Fof*NJQj)*u**l{al;a+&jPAD2skuuc|z9}fC
zp0=`utepz;v3Oulm0z`^p%=K%tjt6qg*|FVp4X;&>>k`@d9H1%%$SUmi%o%(?k?^Y
z=3<=WMGo%d(~A)eY*be=kAN~2Oc_t196M6L<087dBTajpH~eK|x^*G%5)@?Dg~qPm
zlduV#XxINYn;g#wJsqwqZm{H!L-;qmS6ag5yGFfP5cJW~0yOJN4;u_M0WE<8j{C!F
zGbG9hG$h7s0KW(PfrVoxN%p|$8}YSw6qb#d2k_`d!kFRxjz!7_<?+u1#*4#Z3|MEq
z7H=$O7*0o8W4x>A%@V&(ob}@k`z1a{c(%-hLJ9u+;jzv_FmHfWfHh?>2ZT!AmGg(h
z+!BZ=WxtO7<+~kbxt(46my<EqR?HlKur46Y%U`$rIc(v;^PYSeEP-t`xYme(o5-mT
zSU3L85Q76^l8$2JlDU@EK^eN&Y{uVeGJ3><<L_1j4Jbn?L_w#9w3ta29BWIQ+y(V;
zVRt?LAKoe{!%_yqX?q`(RWfvHO`0xP`94TzI~Ul+O}dR9<-*-F<rbS+HnB*jf+fc>
z%?CssJDWXZcHiaArC-0C7%7`XqmVkm4Gqq&A19b)@6!ShgP0>mo}4BrhjbF=2oIuB
zWahm-FE+&55rr*OxC?T<#84TQzJO?QK_?#?EGl?E(D^%G7IHvhY?QVf%kzzyJ@5r$
z*ba2QSb$@fpFMh{If%s;%Fy_nV>jP*8X?DlD)F}Q`%6bMc%L?%^C$}hyy-EVXKh8i
zU4mvNHRxIjtTVw9S7s6M@zcOFDAw*I&oveQWq<L@4Q6?v2cLIpxBi?8P#%JQ?Kd9&
z)%o1N5f@hMLKdwu0b&sWzKg=zw(3mSOW_$rW(}OX>$GcQlPnCwEcv743)+@N&B;z-
zB>@phPyyp9DRTGhh^(4Cscpqw$3TgNDvscz)|Lg;5UXadR~A904jPT4124SoAhnjl
z<a9WO;DZ$EOR;i6Iye|wd4aN!Z<<&=)cvQxkHxd=WAd0e^YyJc`p~noT388h4#HAd
z7o2n6g!Kz{vZaA}6h7EjB+x?3JCxj!3q}ljUu_Tu_#}J12QBCs>kZVcQ+%9}<1p*A
z0Jez#gLk@BMiXoeu;YR~FLqv;1!VNK&3X-g#`E^%pWe$cPsv4woEE)C$sH~AeT^T-
zgN9AF#GGk}Mu|n;lB1&`pL}NFn4qRw$FeJEg8JhdYPOCKXP53qnB{ij<9AZ=zEy+K
zt2*<SykhnDEb*o1y>5de7Mo3@$l^4cLrFIW+_15#67`~_v#r7$;F-@m<)Wt|VRYLJ
z9~c(p#E+!LlWpv*SD%s#hw9SkD6|0=7i92;I!rJ`KrLhY-9XR+E;3O1fHCI?x}f5s
zv?w)70?Gze(y7m^THf}!=)G>Ev5>Un#D`;%2E`FlNq;k%m3!Lkz2*TkK7MTcmyS1u
zeqG3ib&EK}V%P=qh5M)V-|w#r$(0OIA)k~7fPGu;M$!<O%%{*X!{Zx45LtHam8LoG
z6eh9EhVdH0&D?P8<QPss$U`f$iiF>j&<cw`6qs?5ieFzj*2R0#>(J8+E5=dB9v{<o
zdalOja%HL1#wkz`w(LC7EO;_)8;DXkdOas_th-JZ_hHm#qz&aRFb|U@^AlZqC*3{|
zk)5;0%cI5Nt?It-M5yIvz%gG=9Q3Wl{E<h;NA}OUZ--32Ck6mcKn!nYt$I~wqohtd
z&snP-Nhhv*P>&+J5G)ulMtE3;VB|pC??yx$SP0;h2syPeCBK>dPSC|PY=UJ-VdqNN
zC%*n;3HJs5-UP+oJ=x>}H%8%tHNoghw?GtU<Z<R*18{uE#JxU$*t*WGcIciu=OGoT
zXV<UmK6Cb+51UKB`f20VKO6*ZS;fNhfHzaOyDl`x`MsW;7H@0H0%46t@C~kHqcHCo
z5SEwsB2Yf%ywgRfYjm-1sDpMv#bGX#UHU{=Il5{d(82;2x`IIBBTy$1aFQbBkW3_j
z6AOtc?B#wZQeaN56gGht8RT(SB;3lZDx=3CVd=+WM=VU5LDGieW5kZ%$!=^eW?K-R
zWpR+x#R{D~e%6Y|%RJ?ZHh=j-2!@`|{d~D(guYM%(35`N@i$-f)yF@O=~@^XHk2Mj
zoheSTrd9kGZh`RDh}Z9;RXH+PDy(`mq3qmdonAy3dggH4nc{`<qM1oZE^u|`<${HQ
zK~j{ngT2Cj+hA2-dyL`h(V(mhE8Kb)%IAddaUr5Gf(};;SQr-$5E0QpaCfGB{4{*?
z<uDORLmlNqCPiaf)IMd}-B+43?|iYj^c$bubms9riDq6eo3D@6Z2epgGY=cxb$rfq
z$<~ArEV~uT>qAJkF=bIVG)x>xRD)d<OvnPcVq#W-KVMN1W5x*Rc(6l8F^+}tcvOmM
zBh3PugXBy|R=V8rVj$Vdc_f>sJj*e*RA7Ri4%%vtk0Ts^aJr+4zl(+1l7|i;9MCCS
zLy>wysqGuJxg8}#)k}oo(NY_P_&5>EUkwWFjAQ$Wo85um&QAPhckXwK0oTne?D%Lh
zzq|>}Lyt^93Pq+T&x}G)Q+ZH>(E!GXF)Fr+l79>vGaeq4Wx(Pbh=jZ^4W|MP#Nx>t
zm466EI9e&)Ytbw9k*xuo6cRYpdCHE&MFosH$Uw4d6qaF%oO7k&S7JU;Iu1lVC@{Xl
z-T7mp__dyLO*8IH-tPEWgb)B(;XVM#9IsnHA3kknkDM`Q-tyATATEBs@vLd~cGs`t
zN_w5~InR1k)#5nBPBMopc;(;&qUaj!M!QChtvaF<qBCZP$m}~~)GGxG`Mjf02pTSO
zGLNO5LLgWUcEDGb${BC#v?8N;bW#BCmAj0rSOtgMmqundKfncVh&l`Ck>6jip76dj
zgvrMp$h<4_PVx7n(;yY@z=uj46yMKiA23ank2<xVxz-|hy`MLFKiB(rH+tLK{remF
z-L?G9^ZEJK&irMsSiN#x+F!&MRU_N_K+bsRjs{9VPfUiH6uw?>&)a85(14{54_o2Z
zk|`C@19{sVe-sB-z(zA>YRQ-jkcd^R)sQ$Pkhe7lD0uRTK|wP{yVgY6BQCrP+A%^E
znX!NJBM)8^gP6V-zm2<vVWiLoDLTtZpMMeq%{TXjft;a1Z7Ra@oDWt9>*w%Uv-A2_
znZ?<A&GPXtnC7v)^?iJCT?oefIuT6=NGaYg7%QVw^(i>t4VhcvSfj%R^wC%TD%f!W
zrowI_b?U7y7#!*hd)jQU)#wm35S$l6>HD41c_w}Cum-@~1jjOlLu5Lp+#eLg2%v~N
zFt{@^qvqVM(hy@4fmpXmvOx{8R6y;_s#C%1he_eJ$?GDWptGqA3rF){WRc<FaytK{
zAzB{wfBr&+Ip3}h{%&<wyq#TnftkPZHN*R|ZLM_KyY0r?8y#cp>f#XRXi(FCY;^<0
zycuD21kl>3+rm%`!%Lj-Z8em{&b$>TMhqcgKm~PVFy&w_<KxXne!rSjTFnlHp8jTc
zrgCi~5XVH3U9s4uZi+f>6mWEd$d%+SJT5rcUN49t;V|?aOMy)0N|QvqYgHN8knKT`
zVs*BcBA-K{pI+b3Xm(%nO0)A753av|a(#CfH(?G7#k7a1gnc^d6b*IPD7uaqD)8N&
zlj1W|0}0YFK?j)V!14Yy^tkBM0h?jYl84UHL>R*4(TQW{mx`u*A48V02%u|+A9%8b
zkaLFznFu?<H3Qx`RF|=kCl*Upgj3chK|7v;Bd}1V8PHg!NM-f1R~2f;$w@h!gSDw2
z01rL!@K^ogcN)xcs|KHULSesC881a=zJK5J!&!khY&z_e@o3fHDP9CtT>s$RjSCC@
z<BqZvp#n96tz$?wc%_>G!hrK!Ys+v36cJG2a_m=Ia>}vI&7HFFeX(EwmWVfv#$2&z
z#M{IRA4AOsUEZh{PyU_Njx*kW^1U`HsKIksN)~Dq_#j9)n?+Idm?b~+JZK}v2Z|yB
z7bXg$j>qxJl5kU3^7TWwwEo%eCn_H}<SA&FI`Zs7=r^x<BKQbJ9&VF4B-(071pG`4
z%{TD({DHZ}7|H<eJntY&11KxuEkDTaqovnu$!rQ<?{M;5^y-AzwOY{kdQD3jM-8D)
zO~s@`@VNM17FughwhQOwe8He{ccyGAWR6;+yzm@OLHvF8(ua=?&Tm5;dEAE)F<g$(
zlk+3(s$|z37mTCB`DbtEu=7?^5MPMmemm)kw{i%YI`exUaQDs^;kDzWvU@Mgik`f~
z5s}tf3R{+o&l7ag37Z33cix((i=P-AD86%1j$-1^3Qfqi2Qk{hkS@^B5{`PUV4Q$&
zjs>r8sE8e}G%Nw$Em#Z=Rz%ISny=}kh{eJep^d>QY~XyEl9TKKR(g<m>x{?cE_jYq
zC0-z@$WPRr#jh{O&WI_KPKxr;pgSupw6Tzb*NwRVu=>7Lm<98RJVy|<E_PmdusN0f
zHehpL;bgULW6N0xx>n}6TT|}HR%3Y|@#H#K(R*Sv77khhNa|t55YOGXlZ>xzn3M%H
z>(tdSF<~&nX_U^0Mc4)nK3T3bAOpAQtPXA2@|Z~ih6b$Y%m<>hhRR(MuwuL%dYKJ*
z>iU7zTcK7SAIzS*6C4v?=)vcmIsm<$a7!xPU-6aW*K`yh0Y8wO;n<LbUMBdxV2dkw
znz!m+h;2D+OA}u1$WAsWXSl8K*dT!nOf^hOKasoRLT5E0EK`9~1Lp<?3d`P<3EHTE
z5*7?}a9KI%6v~NRS^OVc+o<;Az+i06^WRf8CNBDsa9Yl@WcE$Mhec4*HdQiHAgf+c
zpn}yi5fkKarGsRMa8Ohnxi^BDl;N937mOqX61XbSB#rv1@B-8l41=%=>>`{~QCS`o
zQXzyI*O2E<!l?=Jh~4keP=<E!Fcmu-Kqx8IM_4KlcuiE0`&MBUyq?ui+CNzG<%jMd
zejE;JDwcL~qrN}GNN`Dz>w!A#6x!`+(UJS<j4t3A6L%%dwwh>{D>!*h+1hyhOb3_t
zp1f7v_ub5Dx!Vf+O`#^nAD(}3dRtcLc{M2NI@)5Bm;^<1oX9MSw&<fc|K)Dbs-HQA
znMRa-qt`91_oZbmia{PwIxYH~3kqI0c;O4EM5T}&3A~U~WT+518stJC0$lk1GXmEL
zoe#`}EHQ6O6(Q7xZIv7p2bi%?Wd&uRMa`;PAA~o)N_|I%9FODvLSI`??tnS9p45<*
z;_NKb^Qs_W=n6dfj4#L+-qO$&9kd}+t3dCABUPvO<-*1^P0L}|WVn`xgI<TqZKH)9
z>=ZyFDCF@NLl^{#=xWf=k8EEoi~BedU!JrA9IQNRbzlriXgr7F&dwUewi|g2G(@pk
z$SP1d58~@MqB#X@2;#3-V&;`B4kqp1y;I8TazzX?z&oM&jGL@0BC2i^+;XQC_`8j=
zcuS~>i4Abhzk`jjP&|PJ;=-JXf~}R}f@B;=oktGr4Q0BE^GdS<1{zQ1d8f9yeODG8
zbgsBvj{Kr-3O2CuWJk9avDH`{P!MJ^Oyk{$7q0q(7!QCMW}S+WlAEH{Wc5Uglh+DL
zr6)JRh1@4_?`-31OG!Luj~Y|*p}~j&Q-~Qxz=*LJ<isB-DiKoQ-A+sCKX^~U_F!9B
z2(=7RLE*Im=mjo_#*}7epkbm|w^Wpkp`BgO_rTCFl|#Y7Ryi89lLvKle@?VmqH)HK
z{BWfmH+C-Iw{xflQyfufTT8=y*>RyOX0Ccm2~Ut+U{ITBw@w3_CxX@hF*<=z7UYX_
zR$f=2#WW{#1%x)swHS1GI^Xe+z4QA%{wJ?}>*v0!>!<!kX@fUHVZ715zg4uwyN$AV
zEfmCSp*ix0J$LSG^F4q2^1-^O>_j!<o-kG>ub~K$1p)h66y0Fed<ss9ofMW<JVY#s
zjbMhA23L(@@2v2&lE=xMW%#9|Lvf+xy`%700$>|rDOl-d(Uo^i8Odg}fzFH+$nuxO
z+F_Ol?w38ek%tL`sg7`FW;&oq4wH&@cx%l@PLtQghK;0n*vq!BhM=2yulBYL9WQXS
z@!DFef*{;S8t{n`R9qDC8~|;FDv*H}BSY*a=6j<H&)vS&VKQJIPjdq2%i%Q^nbE0D
zF`jcuC=%NNsE;w6j6=;vpc2q5P0-F7qO3gZ4!UUPVk(AX@i@dn{`3{49KwDe2S&(!
zXPeqdRh{Fc;vg?ZS;+Im@36q&cUBldxV?8eR6cud-H4r+xzEu4(c^z||9|nPAGz-j
z%q{x3(^80DXup;_f!*@N6Hh42^1zFyhu0_n4sh~#V#W(OnmJk6i#q8<tR|4RWFcyi
zS!fj>hi|kYd^~S)<vy%jSd$bG2x;c6(%b<5uouUSx@lbaS*#)#IMkHMc63=%>T(KA
z<%VZz*qFnAtqPAiPC+uIMK8K}z$JKo?8lA53x60uC{TemrWEe<ZRrRIffWXN7`_2V
z-szRG0+&m+tA(ZPBpm9vL7yt-NrI!KcpOZcY~w@euM(<7l{;p9a>9@o``KAr3a09m
zB`gemtKKabE~aBf1sp>}FU${|>r0^pLhHc8UlVk&2<^eV(++qN%H^C=e-e)$^O}CM
z6IhKJ36~)~SUga;h9w#zY>;DD9?$(F**zRjI)m_D6{av|bHv-vDr|Tmt^dDwKfXTq
z##evcmwx}@ue|t+AN`#d{mg|Ycc1xkfn4r}c)2?PZfPEP&^?BXMF=NAv#PODaLOB!
zDI0=j;KhOtH8UQJV(d9RhXf$JedbI{Jbp_<!&wEl<Svy87CJq{YCq|`nXByxuScp7
zD2#D2h{MluqA-rO+zDWtjn{cRDp%N6rc`)-eN*E7*`2Y`&NEaUDvr(0oFJWQP64GR
z*fKR`FbjejRg$8}EqaAo;((7IqoG{Z+-=i+w@qo?TNsadeUFVTF?UY6$9o0kF4!a}
z(19Qkyw^LjSjYD%I%P7w51F#wXh+>j;(b&l=i?|0oTRK222@-S&+dxlEJ0Iv{0QgZ
zc_M}o&lf3JDCC%ZbYzwW93J+&@%wW-+OY?MEsek`ZCe(49HVBY=k16*-1}Dl)i=HG
ziO1jcuFwAGZRgs%1#-FBP|MALQ*H&M@_b>H(~ftuch*0aJBXksprhPHFcW6I7EkuY
z0RI-aUz+?o9Vjhj__x0xzBdilM%fJj>Oef&L>%ju@b1h<m%oR~5Ew1IWhSv`jTb!N
zkYZTqwae=%a*l^oR&eN^c<!(c$SfM-0s}wJLMVAn3$TBtQVPzUtfz~;Apw<>q8kTq
zfI{FUp0Y_h!gYnM!^I>J1rCL)tK!&Dm?Q0y**So4T3cExz%>yVF+*J$uHvFZtQrSP
zfH^@n!XBD+rI3lO0(gdSWvMfYL0DAIDRkAqP>U4F2|ipu#-&3&hVxz<lh}#JF8P@Q
zJ$CW&js>Ebq)U#49!wN;+PH>#3iCkcz8uPUIt(`9O@4)r`K;B!ZnioQhRmFN*W>*@
zaBg#s4!-m?ntV9(@MD+%>3hEaFaP<O^Q$vABIUo94)uEf{$^q6w*p6hA+YkBjiWd7
z9shEi9DP&zc;}N(PL^0qjGWL2bKu0EKvc1oL=#{nq>EzGE-x`pW@@1tXyAmCdKi_C
zwVJNBpT)&LqfE?^BHB<SJr&T*WRd3^JMaODQYvKGhnhNI9`cT^<WIwEgl`9!Cg)Z*
z5=u?DFN(0I-3lO<VN$GmG1Ee~nv_A47g*t!!-Nd>0~qRJ-hrJIhMK_qao@YMawgEW
ziu<FGgO_e(U^}D7LXK+YkjvjD{F;WT%t>#^y^^hkvDl*UGMs}jXDkqNSuha+xFfFv
zES7lt0}>u}!YyaZ-7_<j;|kGfBT2}JIunZp786h^dzlGLvH+xxnd}`VVXYKgc0iFq
zDT-K>vMN=M`Qb{>>&5yxU0JDkDjv@`+k%ohxiR+Rcl{^t{nQ`6?9~^)>RMrnTj|?!
zJBFXPs&L;aU3p#b3u@wQ9v;eSKqp&J;_l{%I2t&mFQ?7m6I^mjIPt7ihyZOpU=nPP
zy>Q17UYv`f+-J)QPp4tNo_u1!X~zW$y5No^#K4;xaLObM7Wi|6)110dDJXFp4mu+H
zqX5>y;1Yw(RJa1!wKioT&rpgjg+HmQCQ2g&JWy4l69wH6iwQ$K&X>@aZOa9iAt6s8
z8Esn%TF{v<2cm%*rS~xhAIEa2hRCdx1>d}<t{<vSPrf~P3~=Wsvd_hW9gWpeVH|Wv
z2ON7xSS%RMn{c(G<gxhK931PM1G~=H-D9TVjbh*NJ`R>@z6MTzL*{B&q`d45BbzE-
zJBJkc)*A8V7pxpAX3S+U-$5#pqoF7=M)Ph=u>NF9Dk)Z=1;exb^0A&XD?n}w|MJ(q
z^^1RU{=wt_><@qI;rHL^gU>q=OTSe(`^_GZHvKF-hAuS?KSwPvU893fPL)SDk+=4(
zMyGi)1WNR`nL;LBru^tSc4ovBkwOnCbn3>sjlq#8bE-zVQd}ID$d-T6mlrUc4dLjR
zqP_;|h$^a@^CfJ83nd3R8};{KFP3}uw7_wPh#(J8`?$EHupuKgM}ZN?9K|iZ28f%O
zj@i>zo;}}zUjxt0EDFJ2(E+pR6j&uF!sx&OF)>b##cWTYo_SX~Ro0G#Mvgy}#FlnP
z@PNm>#u0RthM9wQ*t|Q6_knO{rj`y<31NZzo@NCL^)AQ!gu_PQyN*x@>?pBtxk*DM
z0K+6T>!>>bHp#+Z7ow%?6@w;+hMkT)THxRar%yx1b9f)Sxk7Qk%p2NKo?R$}wtmmM
zH@xZ6zj*t1Jn=s~7mj|j;g)OpyO?mspUwJ(@Mrz|`gXSyPI*4RzZD&OQOw)UJjBL6
zEm6sqgF-2Ad_z~6B;v9S1x|=Gl+IFEEe$+b^~gA`3#AYE;PfO<OcbLzis%esRF&oA
zK`~q~J7DcPOd89E?kyI=y;*5Hiv_EtA>!f66t=zjHpJ9OCQM%KU9t7wooUzPsnCJC
z$HFK$3?h4Sq)-U(tU0+R?I4^EUGZ7NF6d@a<ntR(u*RY%$vAEOLAzsGBo?r^kRA?Y
zmMV%COWrdblBM^Q0F*^s1W(~O2GTgB<L{LYxQiVm&35AbMJNa7+FYK;nT5JedZ9e-
z&&x3BJ+X-ZI|xM|=M2uxRJ<oG{CU2F9Mnz+^)31DB=OpE(`_5tRk7a-Gy#r8UVu2`
zV-5o`b4Vfm;`60FGs3q637O(`bpFBRkH77`pZTA<-nX|BZn@SX&&Bw(``T8>Px}4s
zz|ybv?{6m*laA+N7Vc-)I8Q7JM8?5`1k?X`LBZWFejF@G)hNLZ!Ivi(*e>xR1h%{y
z^dfd-P1{S6IUdz+7DakRT?oW4=<?Z*1jTSqF8ZV<6t)5`yu(4md)vwr1s67o4~(^r
z#Ootd+o;=K4oZoGQ)B!YL_lDX0CNW`XmUz%L%=i3|2-ufp+JDI%>&6mRs!4schp$}
z1_?BXhO=PJ3<~CIrV7--pjJX0HTm+syGCslaKDZQbugrYVwV>g#>>&=VlWIdEjU@u
zS`FC1upI#_aq)+E$FVqSeSc3MY`Sdt^{k-mwE8$5am|tM8P65Gw^(GnyoWozrU-SU
zA~jVGfT#BgS+FpEGn9`C2&lDX!c#o<FMW7(fAM-cSm{nU?RJU5)yTXgDU;XF<^G3O
zfA<~V`RV_;pSk{44L(nU2)OX_?dn2|Vqf2Wt5`<<mhb;|Vd*#8v0v-&p6l_7<Fzh~
z3tX(D(@A@VJgoAjaq;8CVbxraE*wcYj$jycJ!xya+?;$!BI1jdnHQjCK@|rTT<TyO
z9de=bS+1&Nc&9}UoMq4lM@d8C;ccc`(w5)aQkIVGKhF{HIE!8%BkwMVjS&PgK;g!W
zq8CoHC1F)gb~5Fl7|&xy`B2W4gJ=j`@I1kP_u=Y+E8Fb0L?y)EXTvL7DrD!q?mpmQ
z!YWs`MaCkBj(A3eupuhuf_6#pdO-uRk{L?;2COG6f><2UQ4d3D0v6!C9@O9~4O1Is
zU3phFE>7-y7}e{g5o#lbn<&OReHlFn=1->jV*X-OOoZX5@x&RYp(vUSQ)vmZVs(8C
zpE=yTt|OTz;GBuCG1^ctHT2Am!Y}c;pTB?jk#GB+&-|15j+@;s$OW)S-A&h>b-R9}
zPlH_Q-*e$U368m$gVLJ?$J}W5eQIaE?miyK0uSa#JB2UO&`-Ad$I_X4{+(02ulD4Q
zTii>>%09@HM3U+oamK?IHg+3DwrI1lt%V5{oBX5L;rRobW&<uyX)U~Pr9rJcd_jFP
z)NvAbzHhHqpYF_*u>xutW&s^Z`MIFxziYIM=B!DuD9~}DI|ZiA7b>z>7ridFEqSA_
z<bp>R5AW|-gpkt-mQd3uCmT!+VBru8tw!amH<ads!Eo;WCkZU}YNb1R4WL*}8ouC!
z7MPQZXyM7j*->FGJkH)+13=>6UO6tg{n`7RB=G4NkGe~U=kYyz3ZpefEovuO^s#Wq
z1t%6`aKanRVx)+#MulXc)nEfNM@n0!Wa1ns5|*TaSq=L9!8Yp`o9ilGC-?5@F$-Sj
zFJK(OLqAz2Tiq>%`SAVU@;5*8fAn+T-)g@3woaM5XcX#hU5xNQigsPd`F7jz^ldmi
zZudfB>9^{4MKQ<LHVqBEb_eijp5!ElJ78Dg>IksS@B~36@$WAjXosD%GLgYacB^2M
zAo~)6m6nQ7AS@RU1qOOxP>kZ!g2C;aEPe5rx|o*yJ;crwI}Q$NKvBoA%@W-XzUfRS
z#Nx)=bqudsie6*bh*Rb<qyuyjA9tcWNkB`0tB`85nl$KPAa56N+_OkVD5bnL$H228
z>^r+MI?DVMtpWSS0Hck?rE4_E8%5rba=0;N_nw(K!gh&&JE!bcX58Ss!)_39dWjL$
z=&Ym0?NcK`vz&RWvxHW5R7;8<w8Sv!D0M0bEQms#I(!nLaRZUNX$&t(1!`zkvKn>K
z!1<89Sey>&O*Lm)?CMVH*@MkujUe<HQ8SUl3abgWm5vb7&YAIj?|9$me(qNKxopF;
zw-w@T-*YEkci#MaF7CLWdNHYorFW`-%Z)-V=^DYsVX5N-{mVA0#LQH<PNm6>@OE3l
zQ5Q|=mT0Nta6z}9@WY5*PAsZ%8+a)9lhRzoUpguIJf)J8w|XZ-!YHT!wGacOy}3dx
zz^lQafkkb)sHCHwH6^ZnxKijOGfa#YzQHN3AL!UXrtc}eedU#Xg3ink<D_j$FYluj
z`M((bTSJ)liY!>+QxcgLlVG%cqg(H^$Qgpsh~mkETy%;xe;)}wz{r^`!b;$VFkMqA
zPccIPdj-nPO!b`f{+FY6sK^%$zQpZkogM=OU!ZGuL9K6LCjm<eG#tl+J_hK5cz@F1
zT6Q^;6y)?=jnWlCvmGYw#)nZ0ck+}Ogi>ltH%b)kl$u3z2JcFTOALS^!o%*&OEHha
zCK%L3Iseg0=RyO8p3G&T9^|<I3Pc$7;@s*--}EhC{0|@g*AM?MH&f~#3n%V_2cBG9
zxya-8+(q;6wmmN=7nENgv{=;fH}QKf2b~KaKi+e7xwlK^e=}_Wx^*#Jdb_T}(tV&~
zg}7uUlkw%KTewt2di4$mKAc?l$af_K6~_eW%=(^uLn5m{637jy3xnY0NbSKOaw272
z3Sp3eYh)&@XpqQW9PzowZa2dAFk)(nj@U`&COov`Rvq^dpI6iB;0nSeKr_H=VZa3#
zW`Sd36`xOCa<9x3&cB4G3;WFkvK7Gdfvh`U>_OQktje|KYH2%~l?d;ks88gpg2fMT
z(7aI<FI1E{nAvFOYg-kE!DOtVoK(O*9FE<#S^ybV$TJDL|Ez2z-*xb?S7Vt>g+&_Y
z44|XQDV@>}x|2(q1M0Ss;IkxLJ9*T&azV+3c`BU_(Ri!|?Xp4n^&(_L(MH#vcZQA5
z0RShuNip=~-y_E6(GTgtvtqTo{{Bms<oqL=>M*KM>{tj1UgjN8oF<*d`YvDdy2D>Q
zzVyr|KlcCJ``gc#x6SMn?vP{md{TGKe^>usKVB@-SHTN%+xWX_eUPyr;I<6&#NWk5
z0KdPRi}zKX`TBKT>3XvO?F}6bREMlmv9b+b$%$zw{t6ev<g`1F9YZXj0~OguupQu#
zM=K3eNFLKx3qVgk<EBw;94>#s(c(ab17={usP1;IaxQF%tBnpbc3vocC}JZCS=dIl
z6UZSD1q{V*f|og2(4u<>Rg7cP+D<QC7AL_vm3_-mR3VOuvxJ=FZuD<<XC;5TVMc@@
zg(ihJV+aR#N^t2xB}75AR^L-sSu<b`g5x}EmG2A<0$>VQD)2BCi`3pi{plI{15LDR
z6l!6m=<bX%QN8BD=GR8%Sa@%-<KS5if+x~$%!(md(4i%Uuo(Q;uo2Ik(!idg2pd~c
zK?4=`R>VXT1ykVniIRF&cf{CbL<KW6BC%tS?_2b%0W&QY@MG*$jGmX1*TMQ5zW(C>
zb@7?m>pu7Adyn5}H(n1T(P^U)aq&iRXLzJ$u$=UPB3=I<Kl^n-;LaRHn~OU?R{WWB
z?v{1sx3lnf>l5a1{l-23ngAF;=f7R%CAWIfMF&L;)s6>EtZ9wn*6?M4nSVTiqUvsx
zkPG-mi~_$Tm<BR&Db|)S@^rFG!D?E?gGch2?!{YtAPS)s5l-x&V;2heBm1!gg(f&<
zCaW4Jb<&%vt_v4cgkq3(WT=pHauV_^IVTlt4NGhrCsa;g^I!w9Bi}%&Lmh`z7>PO~
zeBWF3fa!@7k4s}kvj;=CFdQf61Tln0ofwP2VwxL(2M=7nL+33}M;1GI^;<ti*l{Qg
z$x=a+*PaHVMuQ=6-p1p0|Gs8@LcR};#L=pZS?ee@3nHH^NLtZc#H({9tbdd9rlS-q
zxIJPgBiDeT0Vn*<M}kWj*2y~@V(w(<%&8tC2T?esCyrvSg~j!dbQjL+vBmok7vu|v
zYGu$;I1EHoNlUS5Vs^gqo1gx`Z$35u>MNJJqw6g?42>{6!iAa{D=6Cdy2i%=o74q4
z7GCb!<M;7)lMMH2NG1NB?~98+Lq1p}Zgug#rJeb(v|k!$;n6^@h4EU$K(G;PyA=oq
zIHVIuB}kW<JI_up)QOVFoj@;xz%@;)omwkj@5rKYED>+ne>xUq!k43921A~KtWEKI
zM9je?Y;w97><UdXMTWJi-ix?B2B?E9Mm&HUNSPXs&GD#RX&!Vn+T{XjDDo|<$g@mw
z1Rid#_L51S8<4G2voev*uP66H&?P~&V>~?b$h|^CY(UnL+}xNluy~UDL;?{w{3s+x
zgWd-){!Z+X6BHswSTGs``~mJaAc^3#@U}8H0h0x=UCQ+&8-!Zymb-p|0YRNaY@Bn-
z76R@KHRwbgv!^-0QW!z=Mi;wue#!fWLf=_ch+-CycDi2q=+J7IY7m;ceV=3Da>D^D
z-+S*}f1cTRs>hE9&&U9jm@?QA$A#^IGn-=-UuWFK#er#RDB8_%c%s31Kld+x$9uo@
z4}R^RzUc3s))`+*A+HCY@qe&XP_&t`!UcXCo{j?CiX0n-mtm9mJ9OFOI2H>*jo))O
zUw7|!ZD+oI&CjIOz1QJYyhsO1UPm`*iK9FP^}oOt8eS2*_<Q7f!XKp}QHarST?ADm
zJYK?h8|l)}M5azpF32OXA;oYIFb$}HOX82Gf`DNv4J-Rj)q!#6ap_14Shk*RO8eiL
zV62xZLzIVq*y?+NK|)jF{??WrH%L%Amaqs@VZZTjK)FLu2IACstDpR}B`s(n>chCT
zhe&3mK_*+*VweZaABpf@j(OXa?>+p|0q2014mmsuXOQ;~43p83J**6Dvsg^x-Qq4F
zGdZM4@`8%p1E4(=+4vqF4(k7%ghH}ltcEf?8FQN=4$e}%9L47?2c<stVjX<Aq^@6f
zHpeSvym%6kr4HCofHQW#lk&}(#o~QA2%WW>A)DY&$wi&7)J`{k4?!7*;unvUA%q>w
zz66oy=)Ise4e*IcDNW~wzw@TIU-*>||MvM0Tx$W}R>+xIQgg+((G0oB*SLB;@Z|0~
zcI5Fs;{WKvxr^r^DbpA6bq&36vA^p&^VQORHXR(dxp0G+`vk$CaVQ57ZZtueB~Uve
zpAxKz6qt;J9!h7&g^t*`QF!2;$g>ZYs;Y}yz(E)pu>N$!a!JK%5cQzdBplP~g@M<e
z;Fh2YI~1oN)ITt3P@D&J@{MlQgADA@DFNEa23eEZo5I2rOa@1u?|=%>;bTY&Xb12J
zhQyOsYJ(%p8r?Y<Ek}d0Z2~bayjScSm^0WQY=N5uRfA%x&<&t?$72ZJo(0V*u#0L5
z=f`5*gAGOEvc#<qS};55QW2I7ua|-7m>%;7fk4Jka`v+sl`H^hahJsr3k`VNpx6$h
zE(lnJu!}^Yg&zxMCU97^Sm@~Q&}AFpvF99DuR9Iw-Ud(16*(7?PBl245lqza$NRYF
z{AO30JYd46X}N!A^L*p`|G?SJeO-{_i1#o)hs#IQXi*;RqE{hRe0}lwyyB~`{L-gB
zvHPlLpPFAft+3RrlWkN)=8%I%h{BDZGrxQrRk1Fz+*PA^qoBvHhjrnosfxhHQPjEU
z*A@fu=e!%ZQ%$_C>dco%=JC88pElbs=hV$`a*BK71e|xJzsD%sHekz*oJeC({_yC_
zu!<CD+i8)FhFNg`3*yOwaAZqR$D+~QfDI~Z_p-nwV<?%}V=H|`5XB&#*%0Hzt}Y5H
z;6aT+E)1t&cEn-S+^Mn+0d^oRl-2;*Nf3d}#J4^k^;jORbTDO1nLUX)K-(xBfJNqb
zP<-6cECM^Hh9vr#Cg~MQ!fT1Hf0!>|zzC`!%*_BJfk`tXwv25`$cP8IS@}7Y>d@@v
zE}dv2uYV@57r3)ULARSChAw+g78x(@l?h5&5x(6jhTh3Ab~TtH9Hk{T4B#|$<a41l
zrgJFJLT-rhLW54IU2~9xQS2KH1gk!SDSh>^07D=IygvRe4nMI##Loz!#PdA9Z&COZ
z3;H;zwM8ewuf))5R8NwQ(X`oVU~meEEIscwJoxqB^6cOLSHJwwe{+)5{#r2dZC!Z$
zIu0pO*zw7oc|8n02_8XLjt)HjJ=iQ@w%~qafsgkUf3{7PicTB_o}nV{(r<N|(evue
z4-V|7omXx!3R>pa&P%L2o;Z`(-%ir?EN0rFr!AXYSPl7Jw8T$m21UY48y%nyUWGt5
zXm%$Tb_jJW6%BO0%YhPsWII0-dR9XL(t{MOxb=+bI`RLN4D#alahHIu3q>p|?TkjA
zVXHg^9b#qy390({HCw`VcV^0(ummSG1mSpMGdSwTvzwn+mQO>)7Tf8gL5mr%)hPMK
zPRNpKbE2?`c;N%v&W?o*?Id~~<}y>m(6E)`__EoWQz4Zhwha5Xw8Bg|IMxEc(<{x-
zhyVz?g&Z1gbY6oQ2vo)+%>n{p+{?if7SHi<;(0g)buYA7C<Z+bnXwXYx14l7g2%+d
zkzU&*^xdFLBM6Fco-uXNQ<%#B`kcJ~+@|rE%g**t*iex|JN0_3+2dt!qyvd_sAkhN
zEIQ@L14fO<65%kr=ZF9LwQs)izkTcv&irBBeQ)zb*@knYkfMO2h{ylyLSA?0+r&R8
z!YJq{<mkFl$niCx7O-3}JOw1fg_?2m>!C5;QJwk0CHtwYXau%P#SjA-44DdiuGKC)
zougK_l7>V==^@>wAY+)7f(GOwZOE}Pvtq2OJ`?wM*eom~ZO@bMdB4E}VfJNAX=59&
zx&^#P+@`B*7utEn^F9uRVA>S_Hv2+bEg~y%#Dj^Lkp&@$C<T1)IThI=4c?Z4#jpoX
zx25b+h;(w1fWaAf$8y|P1HlkReL^@jh}{IC<^=^Xv0y?;FLV^A*HZRqjxlXYb1w`=
zc@Y~){h5Z3gANJVau;?A$gv!WYmLGJwh+g=LHvSbA}1dFU{D>8I@m2d_#qS%6ReeB
z&WX9=)z@UFCn>+tP8N_Cm?#(;=2%2wu%rS%DZe~Wh9_|K9PrX=V6&+bh_ZVkhR6#Y
zdV*P&bs)sp>M1|hl3j58NHA8TreuvMb`O_&zT>)yHUV$^#>>C>$v@irhH12p3;Ice
zPG+s3h}T6MMLmAcMLqs){JzH9xuDl{L=<v-jRgc9c^rb)LZ$dK>;RaTj^fY7oU!y8
zx4#o<jLn6o?4LK}mjW)W=h!$J$^hT=<WDk8C4YDvwad%uQ8Er{(D_di^4pai4zPMB
zTUGGI6LyGT34}<KuSb5qUR8%XB1(!~9_Vw3MjKt}WqvfMhr17IBN{)>@2V^s+huHz
z(dEND3$()QEz@1yVH=~O8SuW*ReGa1HKObi4GqE3<RgOtFBb_gEl@BJx`3V1F5NHQ
zLt|AvX^6?xRMbJ>@pyd<Upe6OD0s9uqYK62*3#qQ`C}*yc)(Kv4~CV1M4+}rXKIZG
zQ3q)d932P14lv~cUpy(8iGku>X{qeVTRxe1Q7|*;gwv$V98g!8!U?r-Lvno_qmdw+
zTImT^OIrB%bbyL;eNVCiV4DE%e=H)HC+yA?=F7%po>)4Ko*S@Wjwwca`~J;e_pS@y
zQx}t(OU}ZbZFu;$PZagpY*u{E=kxp-zsK!xTmBt?9X}U~Me%+7nja%RFWhH6bmd(H
z78l+P)V%qd;n#9AoED4D{L%&U^!g+{SikOlFfoh_Gnp#q$T1Nf8%8GcP%_3YvJtK~
zQ_nzq%-ilp>3OLu8x&WK-ybhG-PWv8MoULSxs==@L#RNEhxqlbaKPbJ0<~N0N*XeU
znkF64LBZHI8e=yS9c~mp_eiEu5V!z$2F`8B)Co$y<xs|>IhiqF2ZL^V9CaR%xy?i^
zMA3~~?QFv3%TQmoNyRZ~h5PL$#alV#A)8K#bUlelgt;?Faasv;r88<U1#yiRY`GPf
z3%fc_>tP4Oh8R8Rv86zR;erT1KtrHH0*hZcWs7u;cB+nK?6A!3Wf#-RB9w(Zox&tt
zr$h6@QQ<8s?;-2~f-h;N84~ejR~?%Rz&M^lCpeTEi+Kp85nL;58}Q|mz%E)hFE;t4
zu&aon(~(1tgs2D&#=l8(qFyx?^Im<{<GFoIUN$(dK*wCjP73dBJm(*I#qrOd|M2h|
z7oM73tl<^zcx(CnHZC~|EB;4OuZw8yvBGc;x^fIK(Us#9j~%~`U3krF2WGyh0UOL6
z_k*q-T{^IL?$QCfoWyu}Avx-8)3o8mkA}Cd7qwRfDa3|SYYg#|vBgFa;zl!on{G;}
zJWgH|e+;Bp9f<;&!Z1u3<eTN$j-=eJUT}CmEJe@Z(nf!ezvBxMOp1mQ?hlW3JIy9k
z8E<vkxgv4Cq1TbU$i@2_7&KmsB}yO)XhXEJd|!<&qIfN=tjxaGUPUpZD=~ejKj9~X
z1rCbWtf-U1i5R|-ULzI^PaJs!GZ->H^RDa&*+G*-CVF}gIG6%%emQPX-k%k*PLMqd
z2FgGx<xUn!Fh#)NNr4WuJ7ij65d3~QYVkGVXM&xj2@3I`IK$5+J0XTLr3ghELwX*R
zf=j=EhtWjhAlcbYQ#lmfyJ!8Jb~c^({z6$tV83u&pOI?`tQ>^Npkw#c0O9<}aG=@j
z0HMfDueCQj_dPJSfA-Pc4{R&q=vYtc$kA2DE*amWW3E5Bxbsky@4FtV)`Fv&tG@03
zdZDPHoYNMPTIG5gh4FU4E<g2CKc$^{{O9ro`#WdPg}>gm+JWGLw_f?rxS(1wi^|!c
z(pAMSuIm&-P57_S!_rWa@$8^9GMvzhnVwwC2Z!1bfyApx(}GaAA#&=ZD+>hApfI#n
z?OszSGidQlR61XZd$N#(;36ZBWk~twNw5SAbM)$ajpxfD9J5vnXSTPML9-!91RWG?
zX~8r>Xf=4`DE56vc(&Kam~~~S0%i_4?kH3vvMa$q4~j!0xd-qKb{uglpI9v<vKfij
zZA=LRv9$uu)q#|mV7Lrk#bAJ#0Q0q-LUtn+aT|y;zf!gcd#E&IbC4Yp<F0U}_O^gW
zQkP0eSPXM`!QTxH9p|k=IqZ^%7Z;0o?EYi-4oA{#HxYD)fX7e8d|wm04uv)xcRgq3
zdTf`2?pEe9@XsFRE8V@oC~V%6u&UE*4MMO8MPiXS_t5YYFZ-&a|MiJa?tbz#SHgPm
zSwky;JL&??w}&XG=9q6Ag5s0ugkZG*FF)-wK1RG9hNO(8W55bbojY;v%<m-iXcvF^
z%$Mwk9(hzxB$#a_JKIi0JCoq3v3>5v=62=O%LDjmN0RWY@FcN9=Bbm(Q`hK4gdz+G
z#F3ockEH~AkStKRD1r?GQ3a;^5H0P?5H+5xxQ`%<5QeiJ3xc>F0;A@1pg@cTPf!Va
ze^0`e$j{wsS7=P>w*neypx|Zr*Z`{-M-9<-5;}lRuC-T(UVuZK2dk}mjv(@HF_+=;
zOoKbX3_(#avgl$U4OWRE`-j14!E~g?wB#<?7)?FG^T196yFC;qEPT6j74NXMFQoXU
z)ehPaH2C!8lIjP#X@U`)HX>N4hoFoVCyU=ohTQ{1Tx1!5g#kV)*m>bNVAzRs1fE9+
z$GWf?b2W`I2UI|G)NQV@7N&8t&G{Q)lmmGlk$diB(M`ulD6U}6fE@;Q791<FfWx9=
zZdBPE1YTRptmX}Gz5ENG`SYD`4L<m7=2~^v%bj^W0NpkeMW@Zep&HU*dLp2mx~Ov(
z&Tz>#5fkp8hoG<p!2JWx;ZD3>JWlJ<Z#CPcf>|1Kd~Bb2`D^@7u1}uE8(paxLSeBD
z1Ve28kIr%O{6xrr$d<BjJO+wQAo+hVsvN~@@zmvv6pX<|p`{ZP;R;~sbZr^+23dPf
z4nl{^U8B+GHE)UD78EPbfgV<!|FE!`Q2MgWh+~f7Wo9{qlJ1E4L{?0Cb^imq2x>`B
zYEh;+qL5)x9T)-#stg5t1dJaSw95x?KC>spXl<ucelpCkV9qsC5X9t_?g~m^_DUg#
zOe`XSQmT;e3TH`J2V^>9Ljlsjrez0_z2ztER*#m1TL<mRnSm5L=XeYk9YHHj7dOBt
z-f4&L$!n#zN;L#rgCT70?B#v!q0ykupMBrsbKg6+F1`!x+<|*TfsFGS=fGUPU&>%L
zF8D#_7wPqh3nxToS%eme0ZX-k0Ob_B&b{66SU30o;R~PI`4}@zc!<cw8=W@e<P5c7
zAX)Rww?Qa1yX7=5^lb(Ew4ZIGRi2huR1bh_&i(C{_y6=y|8xnnERW2=(SiNYnX}>T
z;0Hq_<R}0l+kA>@v!Os-<FtcjN*f@MNjmtrMFb-yJK9xj9}Ed$qy?XIEHF^<d7(Ul
z=WYm|iJZd&DUz|MTj{ie(9)ocOGQ_Vq0ptxC3|HY$;Hso4kGCA3hs^IHDloe4;&B&
zwzr-n-#KQiQOKqt@eQQb=+c5!`Wd?Y;x*H;0|XN&12iw1;4aHHeMvEMeW$PGc%bJ;
zj*Q8i$*V3Q4>;Wh27qTwwy33DNGs}2bieQ|0k<55*)~c|#CzS4!I+`JV}hsT`&fhl
zImCr$DUapa@_7V;)0UHpdR9`DFCGf6O|V#S`o5zZUyy%){Jn4VIZkAhmD7g|rF2Qh
zJ=Jo5De&>V*xl7@=e{$Wf{Q`&4t6ba4yNNEJCIn!<MEFW3k<{{8UjX+pz|E0(y21m
z$gxh&p)zavnl~N&<G=Xm{s%5UJHJ>LIxfW9#6YM0tS;i)x^ga>HM?XRSDZi5dGn$W
zMMT->h<?vD0P!}ps<rlj*@mt2bGjYSOYY3^B+lGp_RilIzMXdUxo}#d>Sgha(L#rA
zJrL9au5qBPHe~pi;B(Gpj?oHNn^ds?2mD?~_W=O}E;?NJ7_>Q|V8L?)ED0Ob-#dQp
z&6Hum)~)C~f$c|L`AF8S7@l%W7`E#yj>@|boh$1CW=duO2VukS9EEw-X*b55KPy0I
zT^Xt|dcykUeNDm>Ij0xowT?matkc1BT;O^d-ufyrrz2%5kWOz(>MCRA=qkZ~M><vR
z*on^_XlUmvD_u}C6K>zC1py@R5SC$KO|Pp_s0j2uEAIi+!k&z)Fa*thF0hH{m92z9
zD0k}<(H42;gkqf&l^lhD(=hhj`Awq%QC5UivVg78FciRrhIWH13eJe{V`RU;_LuE?
zcjtNz#dBcRY2%XKbNKaam}NU>&QI;9KC%CSx-;Jfq14pFZCyDR_R|KJ+%a$Kq)+PH
zw{_Z}P}WSBZNtxP_5{43@a<~TuG500Z&q>V&b-C8V;szrFMWCV(LCg9N?X}Lon0vK
zvP~hkR8%-+1_h-trNrDDEnKmnvY{1Q$+Gkt4-!IYp9-H66ho%m!N>{&O5}MSvsssP
zkj9n)3>cOgqK^UhN5>Cw2#S}r%6`aHPx8p-Vm50PQebEyhZhjUf;qvw(~cKVPWD=n
z!7kJ93Ow1C?_Ex^CpaV+<t@j*-JNM?2G{}b1!B`!Yy@^s77-E6kf3z+W_Kz^0_VD+
zxrLGA%*C*8Rk9v&?O1Hs!4dE0M9zwioHG$aI8KU#XBuEb;mf?ZIbn`auB;btA6VBK
zuZt6kc}G!!IX<q!)bW0eoJJKJgfrwN?^Gp=MG4m*D5ZgzL($J1%5Bg)<2e$~4-DfY
zGbZk&R+F9&fa~JpMJzt~-pG3!o1L9~_qHpSx_^Ffap!5K9M<YirXTXqa~l*>=Y7_!
znUjpZxOkuB+Q_y7^`N#c+&p}(?FzQp7i=r8+n|?Q$#}U6W{DrqJZV35bZ9=h-qyW=
zGd=5|3P2EsidgpMkU$A1bSOYH>12&3iLgeTRSQ;2-B90A6dPpVNM<+cm4VI)Pzf+*
zFg?6%-BHXSK=ERn1ix?;b-XppLA_8WqO(mj69DT1((b&72v#128%xUdjIRk^7#IKs
zxu662Xy+Xe2}Q7Qcp8>r_~s1RqYg?fi`Xa@i<}fME{m?(5oO%oY*ezK+O@RHSQ#yb
ze4oau;*sYeJ$2HYg&K%%7|4U0#Yi<~?&P?FKaJnbC6*1_N6;l<)D?^_B7LX3vIz=J
zqk$Ii@Cjr|d}R<OiJTLCL%WKJ;4l)y4P+(Du8)R%&hd4i-6j}8c;9oP*4{>i8PA);
zK^H@4H{$>M;!ZkxUHEW3pFO0&Xscp2*iXd!h!(i<K44#r1sUD@W%9~LP)mHBZ+hFM
zU--h~XTN1#s62PJtmMScxADohsXXf<xea33R^Yg!t|Q{o`6fK_y2#hVQE<}nHN!R$
zZo%`$@9-QjFs<1xY^i&*880W@rsWs8zi;e=51aS2q*laMx#+4)l~iMt?~G0X1t7x*
zPP<F+%zHBILbr>el*4RI=|938Sx^BNy>=JCoH?Ap3q6n_j~ot6CQHdKz)=P&4HCiC
zEe{@H!QiP29j+5m&p-+F)|LXNmiYIM2eU+r3*`O?aTA7NEm`#9Z*y{dLtA=7zA~W<
z&uA%F103X$@LfD#PtXrMx}8(TP6(x%)>CQ_&XqmsrqRj5X%apw6G09ff?VXKI*l=8
z0S*E%Mu|(qaf7lGg%G<A4$Q!7hffP07jOu6AHk{F7F45wc;rxQhDsrfXgCZ&Cy0!w
zL-%B27k_`|oX#lXbB|p#2A8o5k4*!N$h<h6#`7(9<cEWbp3r;^<QR#;_1T5~E`G$q
z&O1#vDU29*Lh=6M@Ow7*kM%S2htGWB%qMHc3X6hx;8`1NZ5wvh`147F$ZdY<+iV8v
z`#f!!TK^nf`nKn@jc3lo(Yll0_Vb(7o&U_w{7eDW<{Ll$r}kIY7sG@>9gK(?Vv}UW
zpewT|k=ck;l~}~UlZCKk)|Qy!IH}^SW0NJhkiFBBzNPNP$VGx}e(bKm2uK(&RD40X
z+d(=baFHR$9!5RUvCT(^-%-Jb04igq<et}(nG|o!J$;{#6)<9109Ta?a1e}jIhEUJ
z%q!-d?h+t3hudEs7@9KRp%s?P=*k#8bYY8*76xC!1^IpEywRXtq?gcaPd2ypd54ZY
zS+`PW=}2HTk`Y(LqWg{(16c^ztr4OhBc3#%xnig~5e^M=Hb;-qOSpGy%dm)?6f~;M
z?KrB09}Jm5#oIaEkzxS`yoK{1^UjSbRkI-+{VW#cejzpya(%?dyL`CuDR0Ct=EA{-
zos%6WyUj6q_KLuFg!!+AlA0Ju#SJTr_`5_=?e!SPb1phF?nyX`p~3x2Uv>E(?VWLZ
z+n6oe2A;K{)=ANDCk;QDV}4qZ<FE_<dfRj3g=d>x0PF$4#Hqzj@xIwIfOj6X>mzgK
zc^7e`GXHI_z2$?pTAG9V9}chG*)gxrT`9vCK?Ns)u<OQ_!#Ys&GRHWS%EPuP!<#vT
z06h0h`7>Iyuq_C*hz!Jd;2~pn=p*+zbn56Hv&yYg*d)+nfS$;-K&*g{iaDb5a!L^K
z%z@Jb9%)Hg2@KlOu(+wRFj+E>V{I$bE+d#}yy%Wr`d)Rd3XB@Tyi<`3I^4o>Fhtdh
zED1}6(s{*X;V<q86GnHBZ9G^{o@O4v|2;uHmJG!*Od$mZ3lIjbt5K<kh%59?1v;Sh
zd4e*4lV|&30poH1=$cW0VF{3}eqE{F1f+-K?1&@IeDU0YJ7uoeP)hjo@v{ocV6flJ
zOJDdP+;9xOC$gl541W+MYujkTmZ{)Uoa?(nZye~jfyIU68PDfv4-G2}9LMB4lUQNl
z%(?U9^2yKK|9{tokuh=<yKM!2Tc>;)PJSA8zHK2mX>eN86)_O4@$_vwfO^1M2Upjz
zb=z1rCw1vJ(w%c>-qr_hee!+ok(ZhO($n^styvjrVNdVeMS4n~=YviIP-dt!WG!pR
z9-yU+NC*2<^1tQ;`pjdeOht6cIh8%Abu6+bu}ueSV;IZD$x|vjl&DxB;z<qLS#Ok1
zhmMHtZ&65CT!o_3k<bW*tDyxHLXwFt_&iXwnqV}!lFFCm{;uS_TT}A!p%l&Tmeu2B
z_rT$5ON1bc2nK~C!9ti(V3=qt6DdQ*){$2XpaU3pL7@mv`HmQk9m?Xk+n3V%2$caw
zGNh<Xo$jE|8w{LAD5#F?BJw#Ow42SlyP)9}d1z`CTlaiFzTDBW)IY0ZDeWnB_|bP|
zkHV^b=|hv^4I7%JScOt>dnkG_+c+XRV!WT|zG!J84OY(NG=>qkML4!&C{JGZxpTwY
zpM84&m))>`feSZxtF=tOhBdg8-B!#`f?A#nV%ern-6r2ZjlFV`$cPJa-Es3kmWwYN
zcd<|UHXi%+VCSb6^DCF^=U?(@c+dKMcri=Z`OVLamsX?CJSi@@E9GoXV6ugnhG=!Z
zV#(m*Z^=x_(!}1;(5PXb5vv84LzEX3h7o)zG(urT2YhxxzS!a>m!<bs<@8{<BzoMa
zLo^%*EHZPl|IOjQp<E0-u}-oGXwr+>({5;@K^C~cjtcnxLIpoiPqJ@0<KYN}Sc(NK
zifY~MT2n^D&18UVXz_MI7qo0DW(cAo9}rK$6ntAp3wC5wFcmU>4Kptk9G0?M8VDmV
z6xp9xIPjX_yEBn5{9J5tvyPx{AP9;A)P~o~!4$9?1~kW%K-fwfIv11iTRir?S}$Wk
zhwEm_y{$54Q=yfG0IV<wp|C4Tv_wjgN`uu=nODoPY(C(#Kav;;kF}yf@90glfByL8
z&wTbJ|E#7TZj<cu|8<evR%oxKL*FLUIf-3zQjxC<__hxIq=kj=W7`5$4`jC$^^-(M
z*V3K;?9cw}$;CWu9_8~7zQ}xkwnDYKRb!?JIzkv#A@|c!_iZT^+>-GX{5C)b^E4pM
zQ~O3QKpuKpp@BudH~7C0)4&rukWm&O5L|q5(31)S>~^jCd4swL-a0OTSQG$l%sMU7
zY;uIz0fan3!U-(N{xLx7x{}X~jvC4Cfq2L$^iYV7BnZk9eqTaU*^<|5cb?OTyh_?R
zF@A@(**p{s)X^^|f+&31rDx|qIfgBTMY9(R+Y|$8$ny@b-D`rUmbwsdgrSrBKw<a(
zYT6*?HmgaYC_{KZFmO+1S$NN|ko80zgkm?4-7@g{krp@<a)i9_aFiEDRxhV(qTfJ_
z>D&w2G{s{XZ2%DG2WZX_49JT!7-2^%J?_vEOs>pC^)&B7Qdb<J!YaVvI<Y#(V8&TL
zn_e|d{l9n12mYewm2Z>o*WLMP!_4a$5<XX#e%k*h73^);JO7R?1hzpsC$Vhmgrk#+
z|4D<_lZts)V?OcY@lTrHc*U#DN9Vid4J|<@mN>I8tpY}ew4X`3zSJcc9j@R+U{Ok1
z1X{JxZOE8EUC;3Xndv~TkwV!)7$K=bj?&&Od81@Z8VigRP84QH;+I~d*&K%%G@3Av
zSpn#3@E!5E;K^4e1YIP!<Kzp-x^iX!hC~+FP)r>bR1RwxC3`bD<B9lbC4~uA15AU%
z?g>BJC6)s^;bV8To1vq{92uJv!CAqoSg9kXQWjMiWkva*+b<u=Si5XBAm(1446>l6
zgbxeO$C1uIN1ZP^Wq8xT(Cu)ku#qJjTSL1Yc7p`J8)7lg5>q!j>H7^{dlDTjY0&Mo
zfM*7bc=%7^V%bU))C$zM7aNq>hLHkRPW=1GUO5&Q#0Vv2BRhgZTZD*P^*2h<e^VLQ
z%{Cp4Bs%es7(%BA>3}+kxyj0FtRIfgi(m2SU-;CeuYCQw*d4P9berqpHvIZD-uCr;
z)Lr_v(CKX*HuJ!1Cq@pfsG%3AN4G`Y#h=FojT4Vx*Sl?ZfaieXzwKDmq0=W)6YE8A
zxwIdB(M!yaSb|nqz~VzmS48+hW7N|lkZ(&d#55)20nUZYen24zG?;<;*L+qE4hQ1?
z<{_L>W&*a-cs^Y4cV_BUf)D`?t?0;L3MYS7$;l!D%$#Y5Y%hxo8zK?F40-Ea;rt9U
z0eeP=oCmz3yu@RzoWeV!)6P5ZR(uI{IQpL73rp|KtgA#?hH!X8mI7?Y+g7n>G!Vu8
z#KGD?>O{aKIoN{4HS8CT=r!yBEaAk!)rW}&^;V$|{2c5PFm%AX_TnVyY3Rv;6+Bo)
z(PL56H0dA}a}4&~v4QBmJd{U_V52#&4Y5Yx$OxMSz(XSu3p(0y;csw0!9O1F|4ah2
zd7gtIuqTKHaO6nO2k=@Ts%{ED@BI12V!FJ#^3va}86Pzbahtcww$A$be4NCTIjxJ|
zwo9l5MYVdg9)x1i;-Y*lnEkcDGbhaq3I*s%FZ#+w^XZ3PY`%79*Sy-0Sr#s01W8yb
z<iVHna%->7!3>m#iNqpiZa{sSyCmYgx5ALgu!~Xtc++U7z(c}WrzthKxE3>gyh)f6
z3*jHf;y$_3z0UH$m;KU%>efNy#6{QGlD&h7G)MNr=(?FT!8FLCizJT~_KSz;2>2&3
z%|)laFf8ujVKltuIUE6tZfoc`Q^5v~%OMiDP0`U;3mZI1z|VGM7KU>O43T*MIS@k_
zLo8as_l5?UnNBIidPl-F9Q<(_g*q~PFezr;;d!|d%E-w>USXCz$B;z_GYHOKMbSqW
z05K2-ojA_eadM~#!o^4Ok;&G<Ru!+T1O*c)Yc0$MD<34ZBr<S1fl-cDrPn_!qp=X|
z&2;{Qe9%~<k|K0eF;<`j>HNJ{zUk=lOMj`gXD@OgXKG+A(LafGaw8wl)y-eaW1Q51
zZ^P1S3gUA?M%$nz#?I^e*yahtg&wb$2cY(}mGIsN%q!peuJEyS0qu+o+6+niTY*XP
zaMUX03{g}FxUh|$JUDq9QHOx4i2G^D`=t?OsS*3#tOhlTsUyh<ipdQ5$kx!pm%33;
zkXTd>N6kdUa4p||D1#z0M%b2yU-6_qTIn2s-45AN5(8dzRhf0usC59kXe@?#K_Ghr
zEP&Vn0rOlAI-m}rH0t7A6o%1khSpN9=Sad9JZ2#J5~sLlXvpc{w`-N%f`ZLOuCXOE
zXGMca@ZZ58X^GW?5N~Enp;PRvTJ>Uf0;mAR8~Lt=JZwDqp99CArjo%mP1UZ;tJh1Y
z+!`n9WE*m+48H8d;bAU+7fig)W%nAe@HcAX9BqmZS8B-C@O5W4U(Y+8S;hC@{N6_4
zxg(1rY&kfuHRZ<6bv^~*9GF5q`4c5lz>Yvw1iNCPinlwseD4QVU;K`5+lHBQH+#}x
z@%aooucy%0?uT_ybe%DZ0BEEU!74W@L*xJPXYp&K8}V)Ud%j=(o*%b<zS~rz3=3Vj
za6vos(<HOUN9NhRvu0=g`F6vF!IsoOE*QY>z;tnx2!zg?lhoUa?#PUX#wvDdiTdbh
zM*vmZH0dBI<EmCW9dLhJx$uFRV^Kl@!TtBG4u()5XRUTafx0d1KC*RzV2Ta-gLG|4
zL*o?tM5*f~P{XOBGH=l>4dhzIz&WW1JBaxE-8uQF5FBEw<IL(?4Exx=7RT1wlGTA@
z2~V7zUf%;lf*tsrj1^y-O}F~CG+L|SjJOydEp?EZ4X;L3T7q?v*(a0$1g?C7Tb$bP
zW(de@;csn89rQATL68SW0y-+vmgt-?c;j#i7-8jI4uU`i`?1e_YVm`6XQ#gz-#SwX
zuK3#M#NQuw7EA-SWX6WD>!U$&atup*VaAL?r$yI2(e=fIf)L8&C-}U?pT({p!)L&b
zp*eneXZQZtx`#heN5R$IZ4EEf&WNYgrEQ(`^}sGC4HQqJK5nxeVCZF=DcH6lYfWKf
zD}tKVc$ylPas8kC$)7Ac^V2Y;+1%`X(_af8+1WL(;LaPK=IKNugQje<#9g`7aA4c$
zNyPNVU^Ve&CWidEbG3Q`<L_p@3RQA)5p^DLf$Lf=1gT3AK?P2FJVqdE0!xNeunNF)
zD=>Xq8h*_>6%*m4=K+=DB5BHnv5}#nwUl1NgFJ7pvRkYhldf8PEJ^(Fv%Q7F9Bhkg
zD_<0JvzEd**e?iQ1KJA2Uc&CfkYSY}gEpvN;dr<lRq(|TYAC$cmNY?_b9q;49bjXC
zV#+vAR%CkRo?~Y*R<;Q(b?Sv&KPbl<*t-d3__N{2I4bgZ-g!}6H++Bk(Y@C{`T72n
z4}Zn#8y<c2@dwv`u!zUxo;?}T8{MVu3srU{w9{DBFCK4>+XB#_(d!QlReUdwgi*DS
zMb}GHgLx0;Vd?w@{d6iRt8o|_zmF^z&}LVYhQoj@<ENb`!m~g0y1v^xWIq-b<($M7
zf38~eeBhRoI{Nx+{zS*jT{=2-{@m7$qjSgCNHjv1AMY1dyXdsx`@$g{+q!Z7`l+X$
z+TNLO`|!?=M~C+JUi1?4x8h=ui-=Xof_dJ+^(?vRZL_t_xrAQvc*bt=eTFEACWv8D
zsFb6|YEUoRe8!Uum@5yLuw$4gB?lc3x*@;@jQM+C4i3F9p#(q<K9pT2ibzgcGNmX4
zE|1v-l6+8tFAFUzVO=Qg5G-N&<D>&IW0a3>NOY73+%Pli)P0bPAa{a1gha+D-~({Y
zGh-y^ydfVaukMA+vgxdz6WGCF=HkS~u_0d+C>P^%g#c)(m@U{r<@=-%5_XmJzMPkU
zI*Ru^-B&1g5B#1&IKhIfKtH!6Zu{bA=Rfed#}~g9ANSx=_qlOpfAj49(+};>O_%X%
z3VQ*S7UxU4O(0Pj;p>IkngS@YV%1VJK}`X;<?-0YonrDtpH!a#;n=)WCJl5B&^-h*
zooib++40d2o+J!9ZTNYuL(H3jpPxo!JZVt5jc2}13{`jBCwarvzvBVwNf<sakU#$8
zKYs1SJe_Qp&FA*d7`u1YyfaXD7`UiN@#YRJ4@WIAUqUI6$tPRTBF~)imWnI00<sk^
zJWG1Dn9XjEUiq_*x-|qQ1S&?Z@`Gj;0_a}0T0D3#%C@d)I85FsjVTv^<RMK1&Uvp3
zhGCJGDgC(vB^WV71RZ9e{Z?TuV6`9u4zaYuz_Ik?x55`WyJNx)lie4QPdU+$(378z
z_hna#Cpu20XH7#cnBJAP2!LcJuk=rj8O-b^&U*FA9d`t+7&3Kp#5A&@wC43RFBlyy
zs+Bobh5=1Uo#e&ZlS=jS#qPiR#7Fl2As3#5%kAf<mHj`@-Zy>!`mtuPVgO8u*B;NE
z-I?;!VF$bvZ}Z(5?F76AI-_Inc&AI(_*@2~;I+p>9zBnYQI#*;C1ddhO|q`H@pd~q
zPrbzqU-iGY&HjaxAc|`lMBZq@zES9<{`oe+&$W7{Z=+&vEBd_Hp^(?9OZ@x#zJBb-
ze(ZFZW!p#7n*LqiZvOqwo_Q0xa?3DEqn$16Y~i?w?O)ewg-=)>4?Sh5lU0zdvR4Ap
z_u5tmfB1Vi;RUN(aCE*9_>5lheD1#E@8SgliFn2%Ws%^n1Jix%0`f4)=-{@n8L*mq
zKT#YTQ~!cdHcCq~f~FzKzEe+`Km|X?hK*%_1>RHyUgs{Ao|CCUqCxST<ZBz$i4ujx
z@}fiwHH)?|5JjhINk9dWjHOUyh{r$|b;P8B%`2XV@#-n=X_$zDJGpWPf+m4skU#@S
zLyK5lc$qec^qo8d+2W4a5L|=%Z<?!xLd&D(S3msk&V2WJ$LqEgriWfK{FTREd;D+L
z=kR_2BV|&IJ3Ey&v=fzyI1-+gWE;IF&WKBa{@`KGuB8~vvwGTC)h4hy8=QTdn^^o2
zES_=q)uaEiIr{GRaTj?K4RBkLy-}|DjoQg>gI-P=kaF&5giUy;$uLX(J<^Nnp(@`8
z;1|Ftcn<ho{qYxn@fX)$%;U$|bLM4ld6)Tc-<x}Z<)Qeocn6=1Z|C3$`CZ@9?FCb}
z<m1@3CH@_64@vy~jzTnf;RuR__q{?ey(A9->X?f_Vjw;)7yM3&@<6zFFW%=cIpUB9
zzRgI%#egmF`#`T1y8!G;TqrGaE&aST8pI4`s<mah5c}M)dY1D<i(LaLSBnr~QwA&Z
z-*yz;*EH&r&ah8ILpaCwvIMiR{cnafj5=!$lxrG`({j)v?JA07L!G}NT>uhxvhs1P
z@?CxDWQjtIuDTI;CHwOPbx#acH_ljk@FgzK@J<?duIwLt<oEX9u`cKbr{TE|JTkuN
z<*!@**8Z;9hwQ!+(OuuGRYn?yHhLXk7UhjLI9LRD*M{qH7&ZP8Oc|Va>DUVmG-i;(
z-=(E=vG`u?&edYNYg9#?&gG-8`5$-uxBf)a^uuW!^XGC)yqN|4dh$2xVqW9v_yqQi
zPZV*mTli~W=eQjgbH?UT%(<ZR*ZBDO$3K2!#XNNmkC?Z9?OV)mt>4r*sLl+M93|JP
z0uo(&OEfBcjbbxNfCFxajyo6mW^=-&EhlxYxbMCz7Zp4Pw*27hvbRhcp1QKLA6!|u
zGVixlF^-{Pn{5Z=`4`=4qsN8Ag3(!df~W90fr)k`mVyleFm`Nnk-Xj*J%*TFq@p1<
z!k|{Rwxl~^VFOnj^9z_+If|&`geXHEF>D*a9XNN)mKHTw3<v7sp{B*6wCGf{Wr&%?
z1rqehnJn}ZX$VYJJR4goVNI2Y1U%glG~x*px7^VaJ`T4?79auBw-uip7uafL|MX*j
zu=lnrm)fVVrQkg9;_+)<{l?{QH=WrZg;om{wV_4{=X@tS);J8kvee;cuzD`eI*n8W
z6o>1yg<#6+;B%N%_rXxjk<cU~RWUxsvj>~s!C~`g6kCJ1%QG+ew>#r^eQ(?BKgHeo
zN&e)_y{^B0zFql^gg%_qrK3}>homPJ_4;ej9P2K<?#}sZF6dCM{?Q-((Tx}L`0<L@
zm>+)C8_Yk!mXG0+wo!Z;{v(-{LmcwVQ*V_2imoCtM|wKxPz<DyMvM@UK|}Y6?lf*K
zk4NoPkoYq??eK?5JO13MB6UZyK+(M;-YqXqJU9i5gq$TItIosQps%-U$e9juc-qlm
zkpW(s6PPCLgz<Y8XmOFo^BBm(g)LSMr5AO=$?m&S>;p&&Gl)zzb+ikxrJ~nY!&z7x
zv!INv03g0<N!`l6ENn=|9W<1Sqf=)>Y$zDhhSWdvyF(SC;Rt%6Zoja;4O-OmFgqxu
z<%!8t3_XoL-Z0otfBYjmZ@KhL_xbDTAn$*8`s!D`arwLLx}Ya#M6$(Al)zqx*??RO
z1)SjO&e4vR>>-*`vw`z0cGxjmE(fNIV`jXj@;ME10{QPuu2ha<XO+74;p`LV?f3rm
z&OY=fr)7IS7r*>^{aT(6>~azeQ+tea_sj)-8&AFdpKr@7m%2m8&$m7I4}IuE&##!r
zk2ids`MF14W_}`55b1=<-C{@Cn=QpyQKt?_1ce1u!nQMoyI0%k;HD+f5q1TDaI&4Q
z)lMW`gi<tSy?Sy-s-h8Q1iVyOc+-%ojt$0e(ZCyok0!e5+=W-zbVC`R@B#-;&Vr%b
zO&jI6^P2`LAC4RFW)$*<l(SP%DjGyV_G+eMk-a+a6szV=yS83nvoU7wa42<t{-I>4
zBw8CObbV#o#UdLlUc;yhz%j@CxiTOFy!@hohpW}DT!<NhVHzZc#D&E##oamLsH2$U
z7`f4Y;gcWTdF!)JcAvTtIN<z))9YXVSC$`IpP&0)4BFre6wlw|QHcX!pG;o;kq~NP
zo6-RlKf^TypPkHzkxn0t2CkFrvDB0cI1J{7kqa@=UVV3b#=Q537R~G4zm28weCUWb
z6H7l0k~xjWxD9%#zpguThFAEu5EL<XzU}|`@xc#%@cP&++diK9g84V+?=!F1*)v~_
z3kVpuA@wA`q3opSD<vWGmpv7UmIi-;1W3#iHsDfMMI@^@NkjxYRrs(>M4<~T5HTu1
z;ecpEe%SE$U{CTa#PK@V%L6$Y*l}^?Lc%ma{<MT|Hx(ShmH^z<qBF(-lGCAlC<Q*Q
z8veP8!<|AI=IUd@CRpqn9x8i+LNr9y2st}*Bry_kz_E)NM}=r$Xa#tNyM4TN{<`R<
zO_>11;o%KQ?D=?s@se?T_KgW8rP9*SH5c^Be)>=Uc;{`;KGi*OJw{Rd_42TJ^6+x=
z>-Rl0ec$?gTG+}80t@<{C^v_x6zK6z1lJCH>9c2gxH_M}R*Na_V^4BNSwI$t)bThS
zEDJ(d!HU|Q`Ti(;{Ck|6<}>@)zuBe&-PV2Is=~faQF^Unqidltp5%#MTLEv2(PO8{
zlPrXz2TuI@2Y>JfpMPgA+qeGfzsdZIbN8F~0x|&(TzBLyR5+edHbz#X8HH#JL=Hx~
zd3cKltM?DQJy^;hrJ@HRk1;Cx!9v0vcZQ6*atMh9WkyCvmLQHm_f<eLMsaLIN>F&s
zv^4Z(8(~wyCBU2+O5yC!Pz_I!Sj2-`#@73`T<rMo0ZZiW!)pfy-xp&llQm!Rn2jkD
zlemNTq$=g?)XA0IIPzm5htES>Q-*P%*s?IEu$J|uXsS@Ll7SR2gwB_X05=Vee9E&Y
zPS8cO7=}*vFF*E?owr|nrv3c&6p@oU!*lmfuY1j#R=?YH=AN#~4RApT1HjT3Gi9al
z4zr~pDHr_n`x`+J@(Iw4L9i4Dv498nW|VZ*lz}eEN_n<9U)X}ck_E!tzT(%<b${cB
zTf6)0wc6i4A5qb*2vDxyCzjpUwgB}&bKAfZoj5})+_7(id*W+<|NGy6bBcL7Io6BB
zo8M~w*?kY1zfoZ0RNTQ_v6Xj=A%7AuBplHY=Y3g-9eXcRQ8z}nj9}Fi{xHH+VMS)w
zDf0q@*PP4PmP1ExbPxo)-@a3uSN2cg0U;8M*jUVvulVH4ZEm)_HCnK-rS6HffFWS+
zw8T?p(W}E_e3>iZMq{y=WM%+kD65OI;=Bag;I)D~?m}s;fZ|(pv!?8L8Nx9Xb(h6c
zwiI7^O5wpwg1PC;UdaIsjP(=Sg@=>;H+cO_Bjm8_)|NXPSSvH+#6wl=ynvxkqy6y5
zKeF@gD;L`*Pb)mvQ_$o8=O1vdf9;!BA3U>b?mHT*^eoB|i046sU=CL0T*_9VDVQlo
zjC?7KpLkuw?_tITb?HO{<%O7bt)|k`C!dd$O2irwL<1)1usQR&^WAs;z^r-nw@wof
z-Dp6?t)MVo4~>zBl_wSW8k*t3Dj*gv@Vr>yHUIK2|MK&PS*Uw+U-*pqm3z*cSMBVY
z*E6$(F}03FMTUljEYRURN;YINB#g<d3i6R)&T>OGve^gRDg409gAl66GUbpjdudN(
z>l*Yz$n?5Np(D`R*wD%Gc_Q}#5elaR;qPbU+YS0664hOmY0Cd|s04SHg(5SQq82WY
zu1b{8VlS)SH!Qev%-N>bXF>&e7^3>&xjEfIT!mG8N-Sb-cqPVR8($-S<0e!;H<b;q
zDeZOn@c{35vK44(SHWsf?&R4bV0qm9#z+6(o%bAGX)fGs>~?w7Jb7@*{;R!v-S@7~
zw_Tinu(rVB);3ybu^Y<2_oW8HP=Zs=n+-~V_0|2dahf4EQrDCg5rfmh4QO-TX{4Pu
z!`Un2AODbDuaYzS6~ANcX1T0|I@^l+^I^DLuh8gP)TAc`U!0`=ti4$HbDIx*ZHvG#
z%=_N=zMEIfr91Pnpf7gJ{<-t!tsIElke7MJ)T=HId~M+6?8h8J1%*`HUJjEka6j?}
z$tm#kx7(N);8<IdM0?6aw1Irg4dLQe2XVlRoiFn@EeT9&nSV}>p`yV4?;(`ie%yZE
zk<6SJA=xOaq0ZHnMrDRxuV?ySg_9dv%-D;Y@ol^(jM0yT&vR^CYf4XiPwWp~XhJB}
znmmwXRtcM3vC`89eV_PmpjOS<oS|G~4EfIkR$<pe9-?BdgU7sbvHAHw`Td>0HLRND
zwZZ|{@^k+B_|QIiaIyWh`(Na~FNujer4h0P#pFtNM8nq8Mq#jduR9NP)&pVxj^1nN
zBSsG4Zk0*Y+S1-Ro9w|+vmrI}2J&mXed3)%c;c`2<|{wYHj69Uis-d^lb=@XuVn$)
z=302Ih5xjozU}uX75G~D$v@{pjw1h__q^xk7IPenC%<5RbN&B?bN88dTau)6@wE18
zgDCzvR(2DvF8DRJTK}HACcqTv_N=`cC(aq0Mj;fAVk<m1LK)7R>2OuSLE)G+<zSXQ
zJRqfJwWg_F7d%!hiDlT|B!o&t<H{}_!`>W7O}Ul~J%lRwIYC3CQu6q**%^^71$gn{
zK#KgHIK6Gn8_&nul>=W_WoB}Ro|z?dtb!{SLqmLV-gUIJc-HQUg=1nUMMl9W)Z%<;
zr4YY=>hs;-{@8~Xe}DZt{LR|tpM=vckL@#;o^Af+{SUeCSzqUSxxpZoP~U22or`$Y
zL}0j!SqeIOHf)2>zacgkV5*kFVAwL4m7&&_J9I1*4GrN(cj?ik|KlHO%>5th?7e?>
zT0wk1!%qJGS|jLATM$kv>Zkp`&C|V>|JOwv&Xep9kKe!h-S567#XNmH`;_^;VP!sX
z-vj19jl!ZrK*HUzDKDJtSV%<~*zZIvjZg*b8tVLzQ|YU&of$AblpT8hISulHznTRQ
zD4i(7C%#NI@>K8(pBgekGN$Z2IaJzL#fU{P?7CM_>wINdYOdx+TY`H69dqVX;{sca
zWzpnf2U$B3pF-^s<8`=ds>N_3(GM?(juvPhN}}*iQ@InHNT>tR4!H95b1B>o9lh61
z(~CGi)ll+KV@e#~20b@;@p6;7@c74P?|S0TX214)hIA*HO`Y`p>bQCO|6}jUgCn`h
z`}baV&!HKOq?NRncfI!R+Uqqo#&(4}5ZiIgl_Cigcc91tq+Ch<2vzwfkQ7h^2o<N|
zO0bKnfL)Ma8!(3f$Al0kmBImIuMg}HeC>Kq_S8x%X=b|LOTSTnuYd1Nk2KnqcGtGL
zN~MuB8jWVUzxTc0_dAXslXs1;QNLrtn|LS89^}@?2YLm&gY)1g2?<rm`myhY&RrE-
zZP%TYQ=Zz1tF1`DuZC&02*r@+7nJCBt*IV;m!ipaC3)U|q$RD@Z<oAWY?pqao_-dG
zUY+}V%$Htp40i9=U3cBm4M2MxBct?^%U@1ki^{aw;fH&Y|3v2sN}j}b35{gVst6%~
z!YIySoex-8*3ZLH9<By3?7<`-O*#LT2eMjwK@;S%N07O~NDU7RE&Bz;O2{*hGbkbe
ze;4$I4<P;vX=G?_#s!JU4Z>h|MMZAn6YhjqeB{7a46A@2z4d2@g-%F!*vbEoR-V}s
zEW}9hBkiV6Ss!{Zw8A(vfjOYwLWWqsou`1wn$`ud3%SJu7i{e<kpA;VF;N1Km3GMg
z{n(Du+m0WVdlw6%oJyCDw`&b`{v|JM|9cqe^H|<*1wSIEld_uGo<kzPX81f}!T|wT
zAgABMFMM9GhdRd;vPe(^(SXlW_8TI6yC8Lp*)j~%u>X>UDLWnJ(5`y;#t&A5Eq5=4
z?7!dp_JU$?;JBDsN5A~_UIWx#ffacB)1UtI@^$8X%+ApMJ-g`E!C|_%UZ-t*!XVci
zAr0&x5H>;V90f6GIjax@*REoahg)dHt3Y6b?tpg3K(06hyGLYKDCIu?0PI~g44i~F
zyu-LTrQPSJz>XISPXfbGUt-R12xhD*?egcP$0H`hp)(FV?`n8hiSq=EKhqwc8}WPz
zg^=eB_C0~^b^?5LXIKpWC^mRPxt79`sLOgbiCvpv$737|w&#YJAeUOX|AP~$m$;90
z=s@rn5C5e6!P#kXY$*%*VvAF|DUKc4FTb*Ct$KYJ(Q2MMDO9t1I*wT94wKx0Gqj?W
zr!UYsvxylk9Xsi)5F3>z3ySP;8m?6|h*NBF4DUOKk6T7iXP4a^nn@mcPoj@)>U8NM
zY!-FK{f1a9wi7=UwP`O$$X=ZF`J(fBb?f-`HP>9T{KY)GIA{0mqOYXy^319+x)$+j
zKV3$XYiWxnQg#xrU7Qk^{}75hp)dvujqEPM=&wxx1;vSbQlc_ZdR+%DDo$8|0wGhJ
z7g+rJ2!jZKbhO7^j)0Pg__@sol{q9qFg$ed_{^dphV3>7BwI`s#7KN$+teK3WNQ>N
zscx%R((dq+2d(^mwjoDTk}Ec1mIgaM@}M^co_n0+Nk9k}wc~sc%X0^3{z19a9|xki
zpvNABr2(Fc+qCD&$D-Fi`M=>m8=CNP73{@yc<r`0krwpZhDX(Ff)Z^YxCU4sf%7PK
z?rcNow_!^qac<in$i>(>kirU$ve&X1=hrMRxB?W;F~BWsj>k+l;W>C(dS|u+ZYBpV
zpK3k)yP+6<A{3)PU(8_C$Hy0Q-=%_d<_l-;HRzqsR=4PTS6_Yg^203tv1*)Namkf*
zYqd&SnG-IAn;*(sKoV}?tc43G_gle~AS;fMd111qTVSD!Y#IVsLx7)!5blS4Jdul_
z(8FDz*9CKKfpac=++OF~U=~WT7|QNIguAd1%mOsIKf^_lAtDWYZX877|C#__+=_RU
zyZdP;?f~0%+T_j~{L~`5b0MI=QQn#J{lfs{-(dcg`0Nqw29}^|Sdtr}taZ0qR|CJ?
z((TBN^owIR9msK{%)UPIOZhiHe>nQ9R!dBuEYo7ShN7K@CermwU)uh9eOO=11JGui
z!+sGP*6IAZVm*ar#U#0C&sseP`TNV)48x5bONI!B#y~rcz^xI3s_jtQBT4Y}!o&n~
z{&fP@)7$mZ_OA?=ul;Z+8+&>UM*HEYFT_b-j0kBl44HmA`^CUF=6j#`#3xQqXO73r
zH0|E=4E<A7qRQY9y~1|l!nINLNG`eX1o*NTlB{)iL30={E+^i0U($;rL$f9a`}J5R
zcDJCt3ts12T1oBzjko{k{D(tN>CyKP-(`3v@#4#T(<uHuw06}XaYyB-!;Ya`uI|(J
z{4U)0@76`|j&i$u%g2U=L1SPAbq`=kxsQXQ9>?+)Z3MjUV|o-~?h4o~8eVth4U82$
z_Ux>9?EfAK-|*DW!&{7#X+OB_QgrN#DMlSJNkXk(?g?&h4C@QSvVIZo*ic@t$xXLX
zaGy3XyLd3)5xBu3AET84WU}(`GnDzl9K%4ImBnn4i;FDB3YLN#Zs9Be{#&i&&?Qav
z;0My%I+E*toZcguZ(&;sA<=xDd#_>WVg{l8@YWYfW5Uk-v=#I0WNIJWPxl->Oy3_F
zqt_Z=bRQqb*8+XIeOe)MeX(;@ej-oSU0_;{->ouT5JgLj!%Ku*KqMl)?vH;SK;c#%
z{NnSs{lx;=Fba~61h8jt2%0FDAD)2liHjM^(KQr4?oiup5Xu1MvJDh6`?@6%ahK%x
z;m$RVyRmYFz6iui0Z<b8|K!kQmAGLN=shFhTuEY>X()HGMxMIO>m(N+C*`^(k|*Ie
z8EE_W1Rr_y{^<Ra6LMF-#d;~Bmwr3QyqHjOaG(6<KwYmH9Mo6h(3*FD$n(edI0k4?
z5~M~U+!DI1GV5_K+_@4C>LumZYz!3A5O&?=Fn3?9mR#W<Hz(~lDK(R4etoj_*gHcS
z`9&0rJTadFbD_@pRH%;r!m-#z!!PVb_<uiv(^p+})tM>g(4{|{cIlrNlG=@7dS&{Y
zLKHP5-gZCHo^ny=p5SORtF@PF2sWMq;0b(<bipEl#nw;nA<se<hkF`|y%4UqccNTo
z1+p`=hf(wICW(tB+gSkMzexGh-kd>0;ljU<7bl8t?Eeh0dyWbdAPmIS3vFVB+a;sQ
zRwcP7cnl(}Hke@99ggQWF0{K)CBB&!a@~8tCCY<SG|)=<v1U$)`ySg7zHax^;hn}#
z<4hFtlV`(_I=o+gw_MfbT0_6uI(f=mjY;5v!?wCktRD<2Wrn>wvk0L32EYhwd*1K_
z@C*9}Y43gG5RVw#M$v0NR_<fQ$?U3T^0W6$xA$FM3fA5)sC=ZK#juExve05V-!OE(
zf#!T&dl6=i=}U__&Ui7;PPq8+FX`R`d+5spb=q7Xq-}h0F^-EvLIpw}qGCS}Ucm#f
zt<}m6KGxKo5@WaGdM>b+yb~L}RV=pW(bp7&f%?z{783Gy1_&c49ENJwz{n4hM&)E6
zTyO4n0(q9oP5r@u;Wof3K9j@WT_oO+6JZr*g&+k{XxA3N1~wok9hfB@b_Br=!?P&B
zg@lxwiHfRTgof<mow&OZpPoo?{<K>3?9N{VfB5*0@WW|AKe(8}y4=>S{o<)}MT+#H
z{qhG&iJe0u`c3ISXA#Rly23e3j$#pz1{F6Nu-U+Na<v`Ibcw-l$1dIwy23_j8Xy-5
z-4+jLZDe1P?<#OdFvp8Oa?#Q09UlsV6RSh9{(sV*aHgnJ?^V3#d%qUbY0n3Jo$R2s
z=%Z+1IV*~}rB=1**uH1!UnVE$$Mqq)ycE%RFZ^6XG4{JrZYU5BRjQjg<8+hcs^qMH
z4CPX7Yx)Fkd3F&|9yfU&3BEt96R_nc4~DQ*LgA*xBlAT=ID+rT5|E2oV~RWaaCbdN
z=z5ca{|l*_4*m^06U$stE{nt;Y+_N5eYGc0<9wXlS`WZB9GNG$U?7HHlo^Wbq9mq?
z-OtEBfApu}`;Q%#4|Sh`r?(?NmF^wCo;V_QOdS{Zj*jcMr2lL=(ZCK$@~*n08qEr3
zCloq+-KtUUlas(}%I{?<%2lMC?1i36)(zDQE62cb4F#XWTX-kOcGWhGD*@Naj&Yn0
zn#sPG9i4vQ`b4$Mkz8|sdhb@Rfn^aSQ&d>{5pnec<1EDxoC~?1oqATlEJeqONqS=U
z({yulmY%E)(&bS^!y1aXL^cOV`86;dka>Zwcr2@z9)CxBR6)m&91`YZ-?K!!{^QPy
zL)~Upx&S6>$N8`*DZtcu`>O%QVFev_#fXIqa+Rb=A&bGQCXn4eFm{&#gH8#rbpjZ(
z@3*3o0`HatS6IMTwW~x-V0U3vv`OxX;&|93U~C0LYT*@T?eWG{!EOSmmhpi-@^2o!
zKX~iGeezx(Qkkz%FNM_nWQz7;1uN52wDZUz@%7Qw`i<2xjm)<5U5oWZ&$#C7x5DR(
zZ!OHwV<=q`0-tA?3)@L9YP*=chD8K-fI;RAYHV|HL1&!5nRWDr{ZxtEdC}Z^tV+}E
z-M@Bx_Ms065j0D|>Icn`bfIFt5FCSD^kNGCLhn;A7^moGy*{6How@&i9zRA8?Rkc7
zj@z_vaF|}6es7>_km_xXC3M`Z=u}Xc?Ur1+m^D)c(H9(xD6(S|czZYlO8DBx;C<e?
z#;^_yH&CuHM<7JRp4l?*R1z;E(+^s(;UCDo2grpb@xH+n!Vh?na*<Cwc*^lz(YcJD
z7c4*NC&{u&nUkCVXWkAeb%CD1+u;P1FM=2j5y$Q<fGBr9#9bK|^uq_l7aw~te9PXQ
z@~cTKW>2Q$J`)}J$(VMvo8s`H{o)QoJP1Nsk3)Ipqc^h@r)Gv<b51J`=q0F133tlW
zt-O_<S3S<GLg^Z|nF4K6lQ@W)@pt_FX7=*{;sdn@MUsxIQ_ZJecYOBI_a#cirC{_C
z(js1{fENu<`xPb4*WsTG%;Mi~KHGq^xtLo#{n!!u$+J(<-?y5ybD&0B!wi1GkYFy>
zSmdqPLAm(4@0*QSDS@&OJNm%$k8p~+?mc)_{$LZkNb-2mnAStUXdxH7$2?3MMv=Hm
zM^vq9<bP{-Xo|*HsJ@lt4u1(28-%wsz%jlwp7B+Gmcfr>y+2~`SizVzm3Q(A1Sh;u
zVW%C40>+T{dMjTMns(j?_leIvz9V?ouBYS|((~(BKXAp_2Cwv6(DCAr+hS_}Zu#ZW
zaeeVXm9{f%!d)@KF37AB;0DSB1@?O3E;;aw@*G!FmD3EH?L0`D-+QDh^10XXn2|25
z6J^hh?V!z3j`AQAQ|Ot;KGSXu#p>xdOwK<10TZ<u1!IpC!7oLU`Gs~qy}I*-ihnPG
z(5ak5XMHipqJI1+J&+dlf1Er<_mwNOx>lntO1u1Ql(su`CLCIl+wEZ>v7-d__~i&&
zAgz&cL54n5;&w5K=bh)cD;9L{NH@gA#>(eom%@o1cdT3qeBwJi0&K%j6L;kH`Kx@p
z%iU1oS<9k96F#=%ou1@BXL@LyxWiZhua5_LIIq8e-|wO;DsS+Kp%vss-_6~gP7B%J
z{_Lmn9ea1l+gnX>^i+!TnZ(FXc2JkSckT3bxFfxmDz!oVYQ7Fkk?mxLW{?ZoWGGk|
z858G5gW(Sa=cPFx4erieekJpHX=NVi#)+|`I&HZwjBIj-m^cr?%VEC5VlkUZK;lM&
z7a@L3^Sg77k8y3Px%0Y1Qx9D)MY9&kv4^ylGrdA4=A$|G3!NZLf*<p_H!j44>8F?r
zdX629VY>9(E%Ya=*VB8`)xE@&DE4SZ11t#&Q|7dCd>wAhILw(9aU3ko=_wqICBUXJ
z1S2qBP=s{d>ikGLyzO&x(bqzN$(BD076tDbKX(Eq5QazN-$WxVbj8!;8f~E$4s(z3
zvDmA`e|-EK5{A-618M$OFwe5%5dxfgcItC90Lry|Kx<n9p;#t_I=FwA{JULG%719J
zXksY}^x0C#`z`3bem=HFzh?9H<fh61ZSNG|a-Jb-ZE!`-QbAKL4s|v~*#v8|%9MHH
zSaeaokJp7w34`<A{0_o6tlT!&+icr4x8oQ(XAVU9b!(wWpjWoq(Nw*>?aL#z7vEG4
zSMTU0moK{A@2q68O4P;p!1(w5*vCHh+%4vOl*%-A-d4JP-6s0uD56n;W<ff4c2g?P
z8Rc$03f)4<2L0AmQRXg-d_u5i1tuM#wBAae!BPMRt(^q}gcN8fhKqoPMF~05JP6_o
z#P_e^MFoqhja36@#Uyd@OY(ls=|{*PjsYG*8)F<6OBi5EPk@DZEB`J(UMRgC5V`gO
zg4{wt8NJQ7KlXP)Cno8~d!Ln`+q+ZTo)+}!r6|fv!A@AtB7QP*ag*bF?iT%f8_rjM
ztt5?vo}Gq<W}(A17jtoh=6)tMXtteOaIndj>B>6=KKs7u%$u>>VDY@lyqDFii*F^l
z=^Vp9=6q-N4gU?a#qdc9eEyrqWUn5Mn<PlKnhVuf`=g=irJozDT<}#XqnRQ)VA1=2
zGFAfp!eWc{UVmN`bBhxNR9SNl{r36|^!Cv;^k%<MSx*+Uuoc|}%?2$?=qzPEIAxq(
zfc2*kt|tnMGT7c1hcj5HZGjb_ob$q(`8nDU=fLw^$HA@ix^&MY!`jwnA`updaGt6r
zZ<q_kmld>3Geb2jFN)3r<;@cK0!utPX_rMVL813%6;Y5Y2XQVD3fJo;{oUz<`^Bx#
zJ}quGl)R<vuFtk^{8V6<qWeT88ai*A`pEct{b%em)G4Ma@51Y8$9$sY=8m>v&jK0F
zXSTO>ta1}Km$wro7tLjkTHhC$+wE4O9D3odn}amahQaJAc(~7rMmS58*mMEArehu^
zD@SVOi@wmPrrmlp{KP`t`g{ewXjs{AS6{@US*W-_uZp?ft*=dsdiwG1#t^-NgQA_2
zHiQBoawC5S@&NdOyL}5~WRF4Mw{2cU(+RYb9NrL6s9D8o&BCNdgQRX~$a-|66ko%3
zQsnqIKfd%*T_iYCTDLo$cP1#jahO8ze5_3YC~cjTAncl<QzGyucV+|xT|T*XtJ?e9
zT+nTouAyU8`F478k{;f-OWe43m$)r%)8wfzKc35l{8V8V^ZmvMZ9o4aeZ$a*zK)IM
zLSTIf>H4`?c1n;Je`~^)`J0=^FvU3v@_YdHWMRdpb!s#PKFbO17;R<6+=iW}cN`v=
z`x}$9E*pohze<!tFxIo3@{}VU;G2bnuY(R<({%LFIX@V#U3ycay5&wGWHO&?VXq>*
zQ0HE>Fce|#y<i#q`gvQ-@u=2l)B1Di-D$`EzJWSjNL;|Qi*W>ihjURApftn#p#z+N
zR}k@c2OktJ#?2=^+Ww-iyIn-Gvs=h+4|HcYkUf4I91yX)mBMA=DBu3TyD!0_M%uMP
z6|hsVFo$s2BNDtklEmxS01^pg_ka}_IcL{F-5t4k4l^_K#DP8H*0dA9YvKq!xEuxe
zxmLuNVnE8r_&R;vrVG^#22Zy!bFh=cCdU-f#=zWrYi^q^*%U_(HNob{3@zE-ILZnz
zN6;0$+;PTsF^_qCCReLAK~e0$f!Qu_xJoqD%&$3CKeIi@Kq+4&0^t%C<~(Tz_74qQ
zeDm<YB{xN3ZT~{JdOtY($rgS8HuB9s{_&4L|BE>uLnCzMx()QUHRsSf%N5#a?QW^t
z`WD4W)*_amdxgOY7k&vRl7mBMTTM)5aTWjtPz!XVg52lCkLLyY<i#DnXMNhCXbTS)
zcR0o%{796GMGN6_?y11vT?5ALbB+lXg#ZGlogu4sFF2*UQ-OFvIdPnJ96TUyJGf7L
zb8><nU(O=@d?@6nTF}#uy1Zet`lGey>W_vIjYz=K8ETo$D1n@%D>xUFg+p1<pUsM|
z!P&LvgTp&n{9sR(QkZwz=G<vyMH;bk>)e<@ex1M!n%fO<^I~?+Q?oe~$OBYvemamL
z4E1?NW$sfiZ~We1Wy{wFtDEl(g36J8J;!@NFpIfQ5wwE$dBGKPJn9X)XnZZbX?T=g
zJ2p<gAp<IL;pJ`vhnfDM(doF!^HHZfLJQ#<RIxf;zgJArUmV|^q7ECM3&+J-XejHD
zV+|Gs-eY2X8^SB-bB<Z9&R`V=rJdhNx}h3`RU{0vSeV5_UX=B7u|UrF#4-A>qX)&e
z_w5$9&77cJ%W+PeZYAfLF64_X?qMVb)^F19J$H-x%k+F*+wm%o@;Qc)^jm6ckT(@P
zV`1_@6yz8?pL?~+99+V9w<-3O%t4W181DWhxS#UkA7#63?yy6M)M{mV2UEy7fWz@X
z0*oDtyS+@bYXe~vrS(c$*sEJ^Zw#b`U6!VbinuSkU+8wfxO|bh*9*Fs`@_?baeD3O
zYPxoO4gFTFPFpmXW-*?QPKE(wh1x7ja)+X}ILo5KkwYjxbb|N6;w^ywh=WZ62u4b8
zAnFBFAbUpX;x}HC8zzBSpa`3=@)RG>NrIw0Sw?xUpZ2`8ondFTcuX9od(sa4n+NvN
zoy{5Ax12@x`BuD_t6QH-ji>UOjr!diH>;19%CsqlVYNeBgdu1I3^Q{cRm~7}cCPs_
z@QKbkXtN-2phW^O3=ch-9*NgNIpeFdV%0!6+z=d}p8K1ot5=y=33uNK=tN>aW{})$
z1BN0o_E1we)2M9tUSr_GFV(6W?+$vfVfuk&iVC^(hJC#n4h*MwK^OBPoZWQoW2@<!
z!C`t;dcv+oSV15p0`Xg&lUKO7t^m9oVVZ;|>yjK^IKnSDki`R&i;(%ED98Pzbd!H9
zH50av=<klW4&w2JTyyHC2`ZH{ZCG$p<TTk;J6!+v*3m=sy@UJ2*AMQe@3fk9_;eKN
z7iuA&uc-IqDi{PJT78aw^Xd)yPwRvF)u`jZnG^2R3_LOm1IR=JQ-$)Rt^|zP0tiZH
z7|=i{I_tU(AKh30L^4;UvJ%u3`RP{PR0waE%g-wS11~AMbrvi>i^6<ofhKKpE|Jkx
zy}I$P;o1dX8XVYkw?8;tsEA`XzfhO%e_ko(eICY|cW8uOmVUf+)i_;MAEe6=H}?fW
zO1qqM9IBExJXKx??Zm)g;Re4M#K)QC;xJsu4F>R$6_jT)o*yU0I|1za9n&&zaZ}o}
zo7L_GQA9g50SXgG=-y+8>4(P-i~l@&nC?q|);e1|@8?3%U&=(Ceu_GOuQ8%8TYIj)
ze$6`lUehcygN4<fd@f_0p(*0#J_cTqKxwL$a_ECuQ-hVfNOKgP^4%M=odGu}<uGSa
zVR*Ya-;JiEBSPcg7vVNv){-LWwgqM{8A0872F%_fQJSch&beo#zUB7%z{c-~L3yHA
zQ7>{q?5FtSd$3Z>PZpL5sW!Z-Q`~<g{dnc@D7`9-XcUu)1fMW*UdSyh;i*8o;0+vZ
z>YPEN$>qCa;df3%%4vt(@dUsS@rS;A0>;Y4%Y|nf>@PBC$4lOh1R)oGPDV<9{3zXb
z+~D7bgel@bGGX7#`ChGb-Ah~47g9Q=yVzA}xBm9AwfYYR>iP<tq)VtasBp$}m|0$^
z$Kc#tgjZ%WxP;j#M!s*ZH?|}wN8Q6!KS!1sRa^j*f&r-0fWRya8<Y@s5+YlS%=5{+
zdXY40=iF1TZ2Zpf;O1{cVSNvG;k~-^eu_RGpZw$}SBm*k9pwtGsSVOaY1h8JF+`UR
z4AK?p=gVY3RfI}d_~SzxHoO@i4CP^V2w4<i>^Q&-A*h#&x$WdRAi#^-<HPd8HDHv~
z{Ty){YMC-3H(WX~MGvI~J1ySgM-xZs{;A{iv(x>)tQ7O*?egd2Mh_0trRz56cZ{x8
zzaNIQ24Ov>IAR)?Da_o7M`13%4}u)aW?6nH-E+|VE-RLsaem)Y)}*w-{jm-4c{W<H
zK(Wl09s-~k_MizeK~tEqd6=Vab`WM3U_)+LG)1|ISgkU4f1|ePTf_Cu->6nbAMp#g
zU(B(Ho7?PZj^5@g#r$;O?*p`{-k|NK$XDyMH7)p;RVuW$GB7t}wUz@qSC$fN^N{8j
zfIx%g%t-AM!X1nvr4PB_==tJbugH<N&k0TvM>v(I03DuA3-#nAJv22zJ0>U6&*|5T
z>AIf_MfZgWvz*N9QZ%F+8P`{@8rQ#>etugJ>Gl5X$MV;e3&jw1({7mp$>%V`E;DVg
zyU2{a%x(5<FNJRERfpdmL-XWy<36rl4(5JmY9`l1n1QV+-lRR74j@Lb)imPuxq7<3
zYh-Zq9gX^?v}@n^!-a}@uR-ajKJ}@UVtytM)5)8TexOEM(%ak8E$X^~I$e}@BK7op
z+ifw|t|FA75GlKvB+Lm%QINwoSMJ3@z#<_6V<m5EX>O+l`hnRQ+S#0?-KJotw|AMM
zoqpcCQcz#GM^RYDd_tI^RrIn|<LV7-*Xy^6NMCFVW`=X4c7eI<9lm+i9kUHUC)`DO
zRuS3GlCgNa4!F>3*m0uuG*c&A?R@ac#$HrFuVsM~W|K<rXOG~TBXW1u-1W2gu0v1=
zD+fmgH{CVT*nH<uedE7{VQI$i*!>QjU(?Tg<})kB{OrC+C>R`~7n^q{?d&fxW=Pc<
zU65{B8+LdpX|R?q01BWKA*p1Bv_9L#S{J~e^u!5zT*ow(p1_CGqWqM(qK;3{1Ljv}
zPtY^%HXUuX=-})$?S3v7nw4XDyZptZFyZG?MXy~oMpuuFt2Yge=&MDb*9gj~hOEgj
z1&{G@f98b4O|5g-gBOHym<xY`%*czc3x-tq+To5rMym?tQY~@NiFw85?@TxI?wfsM
z7`{QvZG>!aE)`{#2ZExh;lT~}jIG-G)#3W4e~qH*5iaKVnG5=7Kl|C0V!m>$9M88!
z;Y>g+3%y4D8dOzldTV2qes#T}e|313dQDW)Tg}gmh={RpR-HC8HcB;fV{B)_A2Wb7
zbi@F%d>xzTtVo;twPH7Z&>Dn!>TfRiGa1*)Kse@a8EA(g6dr%YSy%`Av$G({?gqed
zm3PJE(0eYFKTq>_>$Q#F9ci5Zt<|I3z7~bmLw;v|!womA6!Vp1<ybkEx2U5Gox94S
zp=r_QsH|7l8+7SFU0pFy*O%8D>WcJx+b}%C6y-R{m7{G4`Q`!}1$kGE9WqmQCCrqZ
zG%=bRqG||NF$)R9G1guiO~b$ffH~{Tu4%=P;H1E(iShv{V(mEdN-}z6ZD7M)<0D(|
z7#rF8?J%r#!c}g(@y3;6zH+P_E63^W)R6(xkI9tJvkoI_R0rt%fqHWJ;Gn)BNW1r-
zq_$LR>PjRPAhg(VU4&3`9-4OWYI0SbtXAy^kFtQ8PA;kh;sJQT5ar2BJj)`0PD<IJ
zm3IzoLyh0FIt}6O3V2aMD-CIbLPRn&xZ%#Rkqd8KHFW;nQUvYJ>$-C4tsE=I%5l1i
zdOr*pznEiZ-^<g)SaVcrdRrLMP`RSEge5&*8_?%cpf&`dUKf><EkU41oj5#|TSF%*
z@4PuI91D1-YnF4kJLBoBCs9zy3A%4)t1--i83ER@6p$X&XrO&H4}!I4H$BHti;j*C
zo%i{%k!@dGDdsE3%CT~s@uI#^G4IEuYCgF<vO=o$<RzU2ApN>rZNI2vyeKpDTk1ws
ziZ7VkMVRl1te}dF#yE%5%yr4>&t&TYp~}CQTX5#s33Kp`$OK7dq3N*OC!(PCgx12|
z59o-Uzhv$g%F6yQtnD>loBO3d?<^5=?tjp{5S60AJz-Eea?35Z*w^U)1sDL2b&+1T
SL$Eji0000<MNUMnLSTZmZPgh7
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/__init__.py
@@ -0,0 +1,13 @@
+
+"""
+TODO: add a docstring.
+
+"""
+
+# We keep all initialization code in a separate module.
+
+from pystache.init import parse, render, Renderer, TemplateSpec
+
+__all__ = ['parse', 'render', 'Renderer', 'TemplateSpec']
+
+__version__ = '0.5.4'  # Also change in setup.py.
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/commands/__init__.py
@@ -0,0 +1,4 @@
+"""
+TODO: add a docstring.
+
+"""
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/commands/render.py
@@ -0,0 +1,95 @@
+# coding: utf-8
+
+"""
+This module provides command-line access to pystache.
+
+Run this script using the -h option for command-line help.
+
+"""
+
+
+try:
+    import json
+except:
+    # The json module is new in Python 2.6, whereas simplejson is
+    # compatible with earlier versions.
+    try:
+        import simplejson as json
+    except ImportError:
+        # Raise an error with a type different from ImportError as a hack around
+        # this issue:
+        #   http://bugs.python.org/issue7559
+        from sys import exc_info
+        ex_type, ex_value, tb = exc_info()
+        new_ex = Exception("%s: %s" % (ex_type.__name__, ex_value))
+        raise new_ex.__class__, new_ex, tb
+
+# The optparse module is deprecated in Python 2.7 in favor of argparse.
+# However, argparse is not available in Python 2.6 and earlier.
+from optparse import OptionParser
+import sys
+
+# We use absolute imports here to allow use of this script from its
+# location in source control (e.g. for development purposes).
+# Otherwise, the following error occurs:
+#
+#   ValueError: Attempted relative import in non-package
+#
+from pystache.common import TemplateNotFoundError
+from pystache.renderer import Renderer
+
+
+USAGE = """\
+%prog [-h] template context
+
+Render a mustache template with the given context.
+
+positional arguments:
+  template    A filename or template string.
+  context     A filename or JSON string."""
+
+
+def parse_args(sys_argv, usage):
+    """
+    Return an OptionParser for the script.
+
+    """
+    args = sys_argv[1:]
+
+    parser = OptionParser(usage=usage)
+    options, args = parser.parse_args(args)
+
+    template, context = args
+
+    return template, context
+
+
+# TODO: verify whether the setup() method's entry_points argument
+# supports passing arguments to main:
+#
+#     http://packages.python.org/distribute/setuptools.html#automatic-script-creation
+#
+def main(sys_argv=sys.argv):
+    template, context = parse_args(sys_argv, USAGE)
+
+    if template.endswith('.mustache'):
+        template = template[:-9]
+
+    renderer = Renderer()
+
+    try:
+        template = renderer.load_template(template)
+    except TemplateNotFoundError:
+        pass
+
+    try:
+        context = json.load(open(context))
+    except IOError:
+        context = json.loads(context)
+
+    rendered = renderer.render(template, context)
+    print rendered
+
+
+if __name__=='__main__':
+    main()
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/commands/test.py
@@ -0,0 +1,18 @@
+# coding: utf-8
+
+"""
+This module provides a command to test pystache (unit tests, doctests, etc).
+
+"""
+
+import sys
+
+from pystache.tests.main import main as run_tests
+
+
+def main(sys_argv=sys.argv):
+    run_tests(sys_argv=sys_argv)
+
+
+if __name__=='__main__':
+    main()
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/common.py
@@ -0,0 +1,71 @@
+# coding: utf-8
+
+"""
+Exposes functionality needed throughout the project.
+
+"""
+
+from sys import version_info
+
+def _get_string_types():
+    # TODO: come up with a better solution for this.  One of the issues here
+    #   is that in Python 3 there is no common base class for unicode strings
+    #   and byte strings, and 2to3 seems to convert all of "str", "unicode",
+    #   and "basestring" to Python 3's "str".
+    if version_info < (3, ):
+         return basestring
+    # The latter evaluates to "bytes" in Python 3 -- even after conversion by 2to3.
+    return (unicode, type(u"a".encode('utf-8')))
+
+
+_STRING_TYPES = _get_string_types()
+
+
+def is_string(obj):
+    """
+    Return whether the given object is a byte string or unicode string.
+
+    This function is provided for compatibility with both Python 2 and 3
+    when using 2to3.
+
+    """
+    return isinstance(obj, _STRING_TYPES)
+
+
+# This function was designed to be portable across Python versions -- both
+# with older versions and with Python 3 after applying 2to3.
+def read(path):
+    """
+    Return the contents of a text file as a byte string.
+
+    """
+    # Opening in binary mode is necessary for compatibility across Python
+    # 2 and 3.  In both Python 2 and 3, open() defaults to opening files in
+    # text mode.  However, in Python 2, open() returns file objects whose
+    # read() method returns byte strings (strings of type `str` in Python 2),
+    # whereas in Python 3, the file object returns unicode strings (strings
+    # of type `str` in Python 3).
+    f = open(path, 'rb')
+    # We avoid use of the with keyword for Python 2.4 support.
+    try:
+        return f.read()
+    finally:
+        f.close()
+
+
+class MissingTags(object):
+
+    """Contains the valid values for Renderer.missing_tags."""
+
+    ignore = 'ignore'
+    strict = 'strict'
+
+
+class PystacheError(Exception):
+    """Base class for Pystache exceptions."""
+    pass
+
+
+class TemplateNotFoundError(PystacheError):
+    """An exception raised when a template is not found."""
+    pass
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/context.py
@@ -0,0 +1,342 @@
+# coding: utf-8
+
+"""
+Exposes a ContextStack class.
+
+The Mustache spec makes a special distinction between two types of context
+stack elements: hashes and objects.  For the purposes of interpreting the
+spec, we define these categories mutually exclusively as follows:
+
+ (1) Hash: an item whose type is a subclass of dict.
+
+ (2) Object: an item that is neither a hash nor an instance of a
+     built-in type.
+
+"""
+
+from pystache.common import PystacheError
+
+
+# This equals '__builtin__' in Python 2 and 'builtins' in Python 3.
+_BUILTIN_MODULE = type(0).__module__
+
+
+# We use this private global variable as a return value to represent a key
+# not being found on lookup.  This lets us distinguish between the case
+# of a key's value being None with the case of a key not being found --
+# without having to rely on exceptions (e.g. KeyError) for flow control.
+#
+# TODO: eliminate the need for a private global variable, e.g. by using the
+#   preferred Python approach of "easier to ask for forgiveness than permission":
+#     http://docs.python.org/glossary.html#term-eafp
+class NotFound(object):
+    pass
+_NOT_FOUND = NotFound()
+
+
+def _get_value(context, key):
+    """
+    Retrieve a key's value from a context item.
+
+    Returns _NOT_FOUND if the key does not exist.
+
+    The ContextStack.get() docstring documents this function's intended behavior.
+
+    """
+    if isinstance(context, dict):
+        # Then we consider the argument a "hash" for the purposes of the spec.
+        #
+        # We do a membership test to avoid using exceptions for flow control
+        # (e.g. catching KeyError).
+        if key in context:
+            return context[key]
+    elif type(context).__module__ != _BUILTIN_MODULE:
+        # Then we consider the argument an "object" for the purposes of
+        # the spec.
+        #
+        # The elif test above lets us avoid treating instances of built-in
+        # types like integers and strings as objects (cf. issue #81).
+        # Instances of user-defined classes on the other hand, for example,
+        # are considered objects by the test above.
+        try:
+            attr = getattr(context, key)
+        except AttributeError:
+            # TODO: distinguish the case of the attribute not existing from
+            #   an AttributeError being raised by the call to the attribute.
+            #   See the following issue for implementation ideas:
+            #     http://bugs.python.org/issue7559
+            pass
+        else:
+            # TODO: consider using EAFP here instead.
+            #   http://docs.python.org/glossary.html#term-eafp
+            if callable(attr):
+                return attr()
+            return attr
+
+    return _NOT_FOUND
+
+
+class KeyNotFoundError(PystacheError):
+
+    """
+    An exception raised when a key is not found in a context stack.
+
+    """
+
+    def __init__(self, key, details):
+        self.key = key
+        self.details = details
+
+    def __str__(self):
+        return "Key %s not found: %s" % (repr(self.key), self.details)
+
+
+class ContextStack(object):
+
+    """
+    Provides dictionary-like access to a stack of zero or more items.
+
+    Instances of this class are meant to act as the rendering context
+    when rendering Mustache templates in accordance with mustache(5)
+    and the Mustache spec.
+
+    Instances encapsulate a private stack of hashes, objects, and built-in
+    type instances.  Querying the stack for the value of a key queries
+    the items in the stack in order from last-added objects to first
+    (last in, first out).
+
+    Caution: this class does not currently support recursive nesting in
+    that items in the stack cannot themselves be ContextStack instances.
+
+    See the docstrings of the methods of this class for more details.
+
+    """
+
+    # We reserve keyword arguments for future options (e.g. a "strict=True"
+    # option for enabling a strict mode).
+    def __init__(self, *items):
+        """
+        Construct an instance, and initialize the private stack.
+
+        The *items arguments are the items with which to populate the
+        initial stack.  Items in the argument list are added to the
+        stack in order so that, in particular, items at the end of
+        the argument list are queried first when querying the stack.
+
+        Caution: items should not themselves be ContextStack instances, as
+        recursive nesting does not behave as one might expect.
+
+        """
+        self._stack = list(items)
+
+    def __repr__(self):
+        """
+        Return a string representation of the instance.
+
+        For example--
+
+        >>> context = ContextStack({'alpha': 'abc'}, {'numeric': 123})
+        >>> repr(context)
+        "ContextStack({'alpha': 'abc'}, {'numeric': 123})"
+
+        """
+        return "%s%s" % (self.__class__.__name__, tuple(self._stack))
+
+    @staticmethod
+    def create(*context, **kwargs):
+        """
+        Build a ContextStack instance from a sequence of context-like items.
+
+        This factory-style method is more general than the ContextStack class's
+        constructor in that, unlike the constructor, the argument list
+        can itself contain ContextStack instances.
+
+        Here is an example illustrating various aspects of this method:
+
+        >>> obj1 = {'animal': 'cat', 'vegetable': 'carrot', 'mineral': 'copper'}
+        >>> obj2 = ContextStack({'vegetable': 'spinach', 'mineral': 'silver'})
+        >>>
+        >>> context = ContextStack.create(obj1, None, obj2, mineral='gold')
+        >>>
+        >>> context.get('animal')
+        'cat'
+        >>> context.get('vegetable')
+        'spinach'
+        >>> context.get('mineral')
+        'gold'
+
+        Arguments:
+
+          *context: zero or more dictionaries, ContextStack instances, or objects
+            with which to populate the initial context stack.  None
+            arguments will be skipped.  Items in the *context list are
+            added to the stack in order so that later items in the argument
+            list take precedence over earlier items.  This behavior is the
+            same as the constructor's.
+
+          **kwargs: additional key-value data to add to the context stack.
+            As these arguments appear after all items in the *context list,
+            in the case of key conflicts these values take precedence over
+            all items in the *context list.  This behavior is the same as
+            the constructor's.
+
+        """
+        items = context
+
+        context = ContextStack()
+
+        for item in items:
+            if item is None:
+                continue
+            if isinstance(item, ContextStack):
+                context._stack.extend(item._stack)
+            else:
+                context.push(item)
+
+        if kwargs:
+            context.push(kwargs)
+
+        return context
+
+    # TODO: add more unit tests for this.
+    # TODO: update the docstring for dotted names.
+    def get(self, name):
+        """
+        Resolve a dotted name against the current context stack.
+
+        This function follows the rules outlined in the section of the
+        spec regarding tag interpolation.  This function returns the value
+        as is and does not coerce the return value to a string.
+
+        Arguments:
+
+          name: a dotted or non-dotted name.
+
+          default: the value to return if name resolution fails at any point.
+            Defaults to the empty string per the Mustache spec.
+
+        This method queries items in the stack in order from last-added
+        objects to first (last in, first out).  The value returned is
+        the value of the key in the first item that contains the key.
+        If the key is not found in any item in the stack, then the default
+        value is returned.  The default value defaults to None.
+
+        In accordance with the spec, this method queries items in the
+        stack for a key differently depending on whether the item is a
+        hash, object, or neither (as defined in the module docstring):
+
+        (1) Hash: if the item is a hash, then the key's value is the
+            dictionary value of the key.  If the dictionary doesn't contain
+            the key, then the key is considered not found.
+
+        (2) Object: if the item is an an object, then the method looks for
+            an attribute with the same name as the key.  If an attribute
+            with that name exists, the value of the attribute is returned.
+            If the attribute is callable, however (i.e. if the attribute
+            is a method), then the attribute is called with no arguments
+            and that value is returned.  If there is no attribute with
+            the same name as the key, then the key is considered not found.
+
+        (3) Neither: if the item is neither a hash nor an object, then
+            the key is considered not found.
+
+        *Caution*:
+
+          Callables are handled differently depending on whether they are
+          dictionary values, as in (1) above, or attributes, as in (2).
+          The former are returned as-is, while the latter are first
+          called and that value returned.
+
+          Here is an example to illustrate:
+
+          >>> def greet():
+          ...     return "Hi Bob!"
+          >>>
+          >>> class Greeter(object):
+          ...     greet = None
+          >>>
+          >>> dct = {'greet': greet}
+          >>> obj = Greeter()
+          >>> obj.greet = greet
+          >>>
+          >>> dct['greet'] is obj.greet
+          True
+          >>> ContextStack(dct).get('greet')  #doctest: +ELLIPSIS
+          <function greet at 0x...>
+          >>> ContextStack(obj).get('greet')
+          'Hi Bob!'
+
+          TODO: explain the rationale for this difference in treatment.
+
+        """
+        if name == '.':
+            try:
+                return self.top()
+            except IndexError:
+                raise KeyNotFoundError(".", "empty context stack")
+
+        parts = name.split('.')
+
+        try:
+            result = self._get_simple(parts[0])
+        except KeyNotFoundError:
+            raise KeyNotFoundError(name, "first part")
+
+        for part in parts[1:]:
+            # The full context stack is not used to resolve the remaining parts.
+            # From the spec--
+            #
+            #   5) If any name parts were retained in step 1, each should be
+            #   resolved against a context stack containing only the result
+            #   from the former resolution.  If any part fails resolution, the
+            #   result should be considered falsey, and should interpolate as
+            #   the empty string.
+            #
+            # TODO: make sure we have a test case for the above point.
+            result = _get_value(result, part)
+            # TODO: consider using EAFP here instead.
+            #   http://docs.python.org/glossary.html#term-eafp
+            if result is _NOT_FOUND:
+                raise KeyNotFoundError(name, "missing %s" % repr(part))
+
+        return result
+
+    def _get_simple(self, name):
+        """
+        Query the stack for a non-dotted name.
+
+        """
+        for item in reversed(self._stack):
+            result = _get_value(item, name)
+            if result is not _NOT_FOUND:
+                return result
+
+        raise KeyNotFoundError(name, "part missing")
+
+    def push(self, item):
+        """
+        Push an item onto the stack.
+
+        """
+        self._stack.append(item)
+
+    def pop(self):
+        """
+        Pop an item off of the stack, and return it.
+
+        """
+        return self._stack.pop()
+
+    def top(self):
+        """
+        Return the item last added to the stack.
+
+        """
+        return self._stack[-1]
+
+    def copy(self):
+        """
+        Return a copy of this instance.
+
+        """
+        return ContextStack(*self._stack)
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/defaults.py
@@ -0,0 +1,65 @@
+# coding: utf-8
+
+"""
+This module provides a central location for defining default behavior.
+
+Throughout the package, these defaults take effect only when the user
+does not otherwise specify a value.
+
+"""
+
+try:
+    # Python 3.2 adds html.escape() and deprecates cgi.escape().
+    from html import escape
+except ImportError:
+    from cgi import escape
+
+import os
+import sys
+
+from pystache.common import MissingTags
+
+
+# How to handle encoding errors when decoding strings from str to unicode.
+#
+# This value is passed as the "errors" argument to Python's built-in
+# unicode() function:
+#
+#   http://docs.python.org/library/functions.html#unicode
+#
+DECODE_ERRORS = 'strict'
+
+# The name of the encoding to use when converting to unicode any strings of
+# type str encountered during the rendering process.
+STRING_ENCODING = sys.getdefaultencoding()
+
+# The name of the encoding to use when converting file contents to unicode.
+# This default takes precedence over the STRING_ENCODING default for
+# strings that arise from files.
+FILE_ENCODING = sys.getdefaultencoding()
+
+# The delimiters to start with when parsing.
+DELIMITERS = (u'{{', u'}}')
+
+# How to handle missing tags when rendering a template.
+MISSING_TAGS = MissingTags.ignore
+
+# The starting list of directories in which to search for templates when
+# loading a template by file name.
+SEARCH_DIRS = [os.curdir]  # i.e. ['.']
+
+# The escape function to apply to strings that require escaping when
+# rendering templates (e.g. for tags enclosed in double braces).
+# Only unicode strings will be passed to this function.
+#
+# The quote=True argument causes double but not single quotes to be escaped
+# in Python 3.1 and earlier, and both double and single quotes to be
+# escaped in Python 3.2 and later:
+#
+#   http://docs.python.org/library/cgi.html#cgi.escape
+#   http://docs.python.org/dev/library/html.html#html.escape
+#
+TAG_ESCAPE = lambda u: escape(u, quote=True)
+
+# The default template extension, without the leading dot.
+TEMPLATE_EXTENSION = 'mustache'
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/init.py
@@ -0,0 +1,19 @@
+# encoding: utf-8
+
+"""
+This module contains the initialization logic called by __init__.py.
+
+"""
+
+from pystache.parser import parse
+from pystache.renderer import Renderer
+from pystache.template_spec import TemplateSpec
+
+
+def render(template, context=None, **kwargs):
+    """
+    Return the given template string rendered using the given context.
+
+    """
+    renderer = Renderer()
+    return renderer.render(template, context, **kwargs)
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/loader.py
@@ -0,0 +1,170 @@
+# coding: utf-8
+
+"""
+This module provides a Loader class for locating and reading templates.
+
+"""
+
+import os
+import sys
+
+from pystache import common
+from pystache import defaults
+from pystache.locator import Locator
+
+
+# We make a function so that the current defaults take effect.
+# TODO: revisit whether this is necessary.
+
+def _make_to_unicode():
+    def to_unicode(s, encoding=None):
+        """
+        Raises a TypeError exception if the given string is already unicode.
+
+        """
+        if encoding is None:
+            encoding = defaults.STRING_ENCODING
+        return unicode(s, encoding, defaults.DECODE_ERRORS)
+    return to_unicode
+
+
+class Loader(object):
+
+    """
+    Loads the template associated to a name or user-defined object.
+
+    All load_*() methods return the template as a unicode string.
+
+    """
+
+    def __init__(self, file_encoding=None, extension=None, to_unicode=None,
+                 search_dirs=None):
+        """
+        Construct a template loader instance.
+
+        Arguments:
+
+          extension: the template file extension, without the leading dot.
+            Pass False for no extension (e.g. to use extensionless template
+            files).  Defaults to the package default.
+
+          file_encoding: the name of the encoding to use when converting file
+            contents to unicode.  Defaults to the package default.
+
+          search_dirs: the list of directories in which to search when loading
+            a template by name or file name.  Defaults to the package default.
+
+          to_unicode: the function to use when converting strings of type
+            str to unicode.  The function should have the signature:
+
+              to_unicode(s, encoding=None)
+
+            It should accept a string of type str and an optional encoding
+            name and return a string of type unicode.  Defaults to calling
+            Python's built-in function unicode() using the package string
+            encoding and decode errors defaults.
+
+        """
+        if extension is None:
+            extension = defaults.TEMPLATE_EXTENSION
+
+        if file_encoding is None:
+            file_encoding = defaults.FILE_ENCODING
+
+        if search_dirs is None:
+            search_dirs = defaults.SEARCH_DIRS
+
+        if to_unicode is None:
+            to_unicode = _make_to_unicode()
+
+        self.extension = extension
+        self.file_encoding = file_encoding
+        # TODO: unit test setting this attribute.
+        self.search_dirs = search_dirs
+        self.to_unicode = to_unicode
+
+    def _make_locator(self):
+        return Locator(extension=self.extension)
+
+    def unicode(self, s, encoding=None):
+        """
+        Convert a string to unicode using the given encoding, and return it.
+
+        This function uses the underlying to_unicode attribute.
+
+        Arguments:
+
+          s: a basestring instance to convert to unicode.  Unlike Python's
+            built-in unicode() function, it is okay to pass unicode strings
+            to this function.  (Passing a unicode string to Python's unicode()
+            with the encoding argument throws the error, "TypeError: decoding
+            Unicode is not supported.")
+
+          encoding: the encoding to pass to the to_unicode attribute.
+            Defaults to None.
+
+        """
+        if isinstance(s, unicode):
+            return unicode(s)
+
+        return self.to_unicode(s, encoding)
+
+    def read(self, path, encoding=None):
+        """
+        Read the template at the given path, and return it as a unicode string.
+
+        """
+        b = common.read(path)
+
+        if encoding is None:
+            encoding = self.file_encoding
+
+        return self.unicode(b, encoding)
+
+    def load_file(self, file_name):
+        """
+        Find and return the template with the given file name.
+
+        Arguments:
+
+          file_name: the file name of the template.
+
+        """
+        locator = self._make_locator()
+
+        path = locator.find_file(file_name, self.search_dirs)
+
+        return self.read(path)
+
+    def load_name(self, name):
+        """
+        Find and return the template with the given template name.
+
+        Arguments:
+
+          name: the name of the template.
+
+        """
+        locator = self._make_locator()
+
+        path = locator.find_name(name, self.search_dirs)
+
+        return self.read(path)
+
+    # TODO: unit-test this method.
+    def load_object(self, obj):
+        """
+        Find and return the template associated to the given object.
+
+        Arguments:
+
+          obj: an instance of a user-defined class.
+
+          search_dirs: the list of directories in which to search.
+
+        """
+        locator = self._make_locator()
+
+        path = locator.find_object(obj, self.search_dirs)
+
+        return self.read(path)
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/locator.py
@@ -0,0 +1,171 @@
+# coding: utf-8
+
+"""
+This module provides a Locator class for finding template files.
+
+"""
+
+import os
+import re
+import sys
+
+from pystache.common import TemplateNotFoundError
+from pystache import defaults
+
+
+class Locator(object):
+
+    def __init__(self, extension=None):
+        """
+        Construct a template locator.
+
+        Arguments:
+
+          extension: the template file extension, without the leading dot.
+            Pass False for no extension (e.g. to use extensionless template
+            files).  Defaults to the package default.
+
+        """
+        if extension is None:
+            extension = defaults.TEMPLATE_EXTENSION
+
+        self.template_extension = extension
+
+    def get_object_directory(self, obj):
+        """
+        Return the directory containing an object's defining class.
+
+        Returns None if there is no such directory, for example if the
+        class was defined in an interactive Python session, or in a
+        doctest that appears in a text file (rather than a Python file).
+
+        """
+        if not hasattr(obj, '__module__'):
+            return None
+
+        module = sys.modules[obj.__module__]
+
+        if not hasattr(module, '__file__'):
+            # TODO: add a unit test for this case.
+            return None
+
+        path = module.__file__
+
+        return os.path.dirname(path)
+
+    def make_template_name(self, obj):
+        """
+        Return the canonical template name for an object instance.
+
+        This method converts Python-style class names (PEP 8's recommended
+        CamelCase, aka CapWords) to lower_case_with_underscords.  Here
+        is an example with code:
+
+        >>> class HelloWorld(object):
+        ...     pass
+        >>> hi = HelloWorld()
+        >>>
+        >>> locator = Locator()
+        >>> locator.make_template_name(hi)
+        'hello_world'
+
+        """
+        template_name = obj.__class__.__name__
+
+        def repl(match):
+            return '_' + match.group(0).lower()
+
+        return re.sub('[A-Z]', repl, template_name)[1:]
+
+    def make_file_name(self, template_name, template_extension=None):
+        """
+        Generate and return the file name for the given template name.
+
+        Arguments:
+
+          template_extension: defaults to the instance's extension.
+
+        """
+        file_name = template_name
+
+        if template_extension is None:
+            template_extension = self.template_extension
+
+        if template_extension is not False:
+            file_name += os.path.extsep + template_extension
+
+        return file_name
+
+    def _find_path(self, search_dirs, file_name):
+        """
+        Search for the given file, and return the path.
+
+        Returns None if the file is not found.
+
+        """
+        for dir_path in search_dirs:
+            file_path = os.path.join(dir_path, file_name)
+            if os.path.exists(file_path):
+                return file_path
+
+        return None
+
+    def _find_path_required(self, search_dirs, file_name):
+        """
+        Return the path to a template with the given file name.
+
+        """
+        path = self._find_path(search_dirs, file_name)
+
+        if path is None:
+            raise TemplateNotFoundError('File %s not found in dirs: %s' %
+                                        (repr(file_name), repr(search_dirs)))
+
+        return path
+
+    def find_file(self, file_name, search_dirs):
+        """
+        Return the path to a template with the given file name.
+
+        Arguments:
+
+          file_name: the file name of the template.
+
+          search_dirs: the list of directories in which to search.
+
+        """
+        return self._find_path_required(search_dirs, file_name)
+
+    def find_name(self, template_name, search_dirs):
+        """
+        Return the path to a template with the given name.
+
+        Arguments:
+
+          template_name: the name of the template.
+
+          search_dirs: the list of directories in which to search.
+
+        """
+        file_name = self.make_file_name(template_name)
+
+        return self._find_path_required(search_dirs, file_name)
+
+    def find_object(self, obj, search_dirs, file_name=None):
+        """
+        Return the path to a template associated with the given object.
+
+        """
+        if file_name is None:
+            # TODO: should we define a make_file_name() method?
+            template_name = self.make_template_name(obj)
+            file_name = self.make_file_name(template_name)
+
+        dir_path = self.get_object_directory(obj)
+
+        if dir_path is not None:
+            search_dirs = [dir_path] + search_dirs
+
+        path = self._find_path_required(search_dirs, file_name)
+
+        return path
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/parsed.py
@@ -0,0 +1,50 @@
+# coding: utf-8
+
+"""
+Exposes a class that represents a parsed (or compiled) template.
+
+"""
+
+
+class ParsedTemplate(object):
+
+    """
+    Represents a parsed or compiled template.
+
+    An instance wraps a list of unicode strings and node objects.  A node
+    object must have a `render(engine, stack)` method that accepts a
+    RenderEngine instance and a ContextStack instance and returns a unicode
+    string.
+
+    """
+
+    def __init__(self):
+        self._parse_tree = []
+
+    def __repr__(self):
+        return repr(self._parse_tree)
+
+    def add(self, node):
+        """
+        Arguments:
+
+          node: a unicode string or node object instance.  See the class
+            docstring for information.
+
+        """
+        self._parse_tree.append(node)
+
+    def render(self, engine, context):
+        """
+        Returns: a string of type unicode.
+
+        """
+        # We avoid use of the ternary operator for Python 2.4 support.
+        def get_unicode(node):
+            if type(node) is unicode:
+                return node
+            return node.render(engine, context)
+        parts = map(get_unicode, self._parse_tree)
+        s = ''.join(parts)
+
+        return unicode(s)
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/parser.py
@@ -0,0 +1,378 @@
+# coding: utf-8
+
+"""
+Exposes a parse() function to parse template strings.
+
+"""
+
+import re
+
+from pystache import defaults
+from pystache.parsed import ParsedTemplate
+
+
+END_OF_LINE_CHARACTERS = [u'\r', u'\n']
+NON_BLANK_RE = re.compile(ur'^(.)', re.M)
+
+
+# TODO: add some unit tests for this.
+# TODO: add a test case that checks for spurious spaces.
+# TODO: add test cases for delimiters.
+def parse(template, delimiters=None):
+    """
+    Parse a unicode template string and return a ParsedTemplate instance.
+
+    Arguments:
+
+      template: a unicode template string.
+
+      delimiters: a 2-tuple of delimiters.  Defaults to the package default.
+
+    Examples:
+
+    >>> parsed = parse(u"Hey {{#who}}{{name}}!{{/who}}")
+    >>> print str(parsed).replace('u', '')  # This is a hack to get the test to pass both in Python 2 and 3.
+    ['Hey ', _SectionNode(key='who', index_begin=12, index_end=21, parsed=[_EscapeNode(key='name'), '!'])]
+
+    """
+    if type(template) is not unicode:
+        raise Exception("Template is not unicode: %s" % type(template))
+    parser = _Parser(delimiters)
+    return parser.parse(template)
+
+
+def _compile_template_re(delimiters):
+    """
+    Return a regular expression object (re.RegexObject) instance.
+
+    """
+    # The possible tag type characters following the opening tag,
+    # excluding "=" and "{".
+    tag_types = "!>&/#^"
+
+    # TODO: are we following this in the spec?
+    #
+    #   The tag's content MUST be a non-whitespace character sequence
+    #   NOT containing the current closing delimiter.
+    #
+    tag = r"""
+        (?P<whitespace>[\ \t]*)
+        %(otag)s \s*
+        (?:
+          (?P<change>=) \s* (?P<delims>.+?)   \s* = |
+          (?P<raw>{)    \s* (?P<raw_name>.+?) \s* } |
+          (?P<tag>[%(tag_types)s]?)  \s* (?P<tag_key>[\s\S]+?)
+        )
+        \s* %(ctag)s
+    """ % {'tag_types': tag_types, 'otag': re.escape(delimiters[0]), 'ctag': re.escape(delimiters[1])}
+
+    return re.compile(tag, re.VERBOSE)
+
+
+class ParsingError(Exception):
+
+    pass
+
+
+## Node types
+
+def _format(obj, exclude=None):
+    if exclude is None:
+        exclude = []
+    exclude.append('key')
+    attrs = obj.__dict__
+    names = list(set(attrs.keys()) - set(exclude))
+    names.sort()
+    names.insert(0, 'key')
+    args = ["%s=%s" % (name, repr(attrs[name])) for name in names]
+    return "%s(%s)" % (obj.__class__.__name__, ", ".join(args))
+
+
+class _CommentNode(object):
+
+    def __repr__(self):
+        return _format(self)
+
+    def render(self, engine, context):
+        return u''
+
+
+class _ChangeNode(object):
+
+    def __init__(self, delimiters):
+        self.delimiters = delimiters
+
+    def __repr__(self):
+        return _format(self)
+
+    def render(self, engine, context):
+        return u''
+
+
+class _EscapeNode(object):
+
+    def __init__(self, key):
+        self.key = key
+
+    def __repr__(self):
+        return _format(self)
+
+    def render(self, engine, context):
+        s = engine.fetch_string(context, self.key)
+        return engine.escape(s)
+
+
+class _LiteralNode(object):
+
+    def __init__(self, key):
+        self.key = key
+
+    def __repr__(self):
+        return _format(self)
+
+    def render(self, engine, context):
+        s = engine.fetch_string(context, self.key)
+        return engine.literal(s)
+
+
+class _PartialNode(object):
+
+    def __init__(self, key, indent):
+        self.key = key
+        self.indent = indent
+
+    def __repr__(self):
+        return _format(self)
+
+    def render(self, engine, context):
+        template = engine.resolve_partial(self.key)
+        # Indent before rendering.
+        template = re.sub(NON_BLANK_RE, self.indent + ur'\1', template)
+
+        return engine.render(template, context)
+
+
+class _InvertedNode(object):
+
+    def __init__(self, key, parsed_section):
+        self.key = key
+        self.parsed_section = parsed_section
+
+    def __repr__(self):
+        return _format(self)
+
+    def render(self, engine, context):
+        # TODO: is there a bug because we are not using the same
+        #   logic as in fetch_string()?
+        data = engine.resolve_context(context, self.key)
+        # Note that lambdas are considered truthy for inverted sections
+        # per the spec.
+        if data:
+            return u''
+        return self.parsed_section.render(engine, context)
+
+
+class _SectionNode(object):
+
+    # TODO: the template_ and parsed_template_ arguments don't both seem
+    # to be necessary.  Can we remove one of them?  For example, if
+    # callable(data) is True, then the initial parsed_template isn't used.
+    def __init__(self, key, parsed, delimiters, template, index_begin, index_end):
+        self.delimiters = delimiters
+        self.key = key
+        self.parsed = parsed
+        self.template = template
+        self.index_begin = index_begin
+        self.index_end = index_end
+
+    def __repr__(self):
+        return _format(self, exclude=['delimiters', 'template'])
+
+    def render(self, engine, context):
+        values = engine.fetch_section_data(context, self.key)
+
+        parts = []
+        for val in values:
+            if callable(val):
+                # Lambdas special case section rendering and bypass pushing
+                # the data value onto the context stack.  From the spec--
+                #
+                #   When used as the data value for a Section tag, the
+                #   lambda MUST be treatable as an arity 1 function, and
+                #   invoked as such (passing a String containing the
+                #   unprocessed section contents).  The returned value
+                #   MUST be rendered against the current delimiters, then
+                #   interpolated in place of the section.
+                #
+                #  Also see--
+                #
+                #   https://github.com/defunkt/pystache/issues/113
+                #
+                # TODO: should we check the arity?
+                val = val(self.template[self.index_begin:self.index_end])
+                val = engine._render_value(val, context, delimiters=self.delimiters)
+                parts.append(val)
+                continue
+
+            context.push(val)
+            parts.append(self.parsed.render(engine, context))
+            context.pop()
+
+        return unicode(''.join(parts))
+
+
+class _Parser(object):
+
+    _delimiters = None
+    _template_re = None
+
+    def __init__(self, delimiters=None):
+        if delimiters is None:
+            delimiters = defaults.DELIMITERS
+
+        self._delimiters = delimiters
+
+    def _compile_delimiters(self):
+        self._template_re = _compile_template_re(self._delimiters)
+
+    def _change_delimiters(self, delimiters):
+        self._delimiters = delimiters
+        self._compile_delimiters()
+
+    def parse(self, template):
+        """
+        Parse a template string starting at some index.
+
+        This method uses the current tag delimiter.
+
+        Arguments:
+
+          template: a unicode string that is the template to parse.
+
+          index: the index at which to start parsing.
+
+        Returns:
+
+          a ParsedTemplate instance.
+
+        """
+        self._compile_delimiters()
+
+        start_index = 0
+        content_end_index, parsed_section, section_key = None, None, None
+        parsed_template = ParsedTemplate()
+
+        states = []
+
+        while True:
+            match = self._template_re.search(template, start_index)
+
+            if match is None:
+                break
+
+            match_index = match.start()
+            end_index = match.end()
+
+            matches = match.groupdict()
+
+            # Normalize the matches dictionary.
+            if matches['change'] is not None:
+                matches.update(tag='=', tag_key=matches['delims'])
+            elif matches['raw'] is not None:
+                matches.update(tag='&', tag_key=matches['raw_name'])
+
+            tag_type = matches['tag']
+            tag_key = matches['tag_key']
+            leading_whitespace = matches['whitespace']
+
+            # Standalone (non-interpolation) tags consume the entire line,
+            # both leading whitespace and trailing newline.
+            did_tag_begin_line = match_index == 0 or template[match_index - 1] in END_OF_LINE_CHARACTERS
+            did_tag_end_line = end_index == len(template) or template[end_index] in END_OF_LINE_CHARACTERS
+            is_tag_interpolating = tag_type in ['', '&']
+
+            if did_tag_begin_line and did_tag_end_line and not is_tag_interpolating:
+                if end_index < len(template):
+                    end_index += template[end_index] == '\r' and 1 or 0
+                if end_index < len(template):
+                    end_index += template[end_index] == '\n' and 1 or 0
+            elif leading_whitespace:
+                match_index += len(leading_whitespace)
+                leading_whitespace = ''
+
+            # Avoid adding spurious empty strings to the parse tree.
+            if start_index != match_index:
+                parsed_template.add(template[start_index:match_index])
+
+            start_index = end_index
+
+            if tag_type in ('#', '^'):
+                # Cache current state.
+                state = (tag_type, end_index, section_key, parsed_template)
+                states.append(state)
+
+                # Initialize new state
+                section_key, parsed_template = tag_key, ParsedTemplate()
+                continue
+
+            if tag_type == '/':
+                if tag_key != section_key:
+                    raise ParsingError("Section end tag mismatch: %s != %s" % (tag_key, section_key))
+
+                # Restore previous state with newly found section data.
+                parsed_section = parsed_template
+
+                (tag_type, section_start_index, section_key, parsed_template) = states.pop()
+                node = self._make_section_node(template, tag_type, tag_key, parsed_section,
+                                               section_start_index, match_index)
+
+            else:
+                node = self._make_interpolation_node(tag_type, tag_key, leading_whitespace)
+
+            parsed_template.add(node)
+
+        # Avoid adding spurious empty strings to the parse tree.
+        if start_index != len(template):
+            parsed_template.add(template[start_index:])
+
+        return parsed_template
+
+    def _make_interpolation_node(self, tag_type, tag_key, leading_whitespace):
+        """
+        Create and return a non-section node for the parse tree.
+
+        """
+        # TODO: switch to using a dictionary instead of a bunch of ifs and elifs.
+        if tag_type == '!':
+            return _CommentNode()
+
+        if tag_type == '=':
+            delimiters = tag_key.split()
+            self._change_delimiters(delimiters)
+            return _ChangeNode(delimiters)
+
+        if tag_type == '':
+            return _EscapeNode(tag_key)
+
+        if tag_type == '&':
+            return _LiteralNode(tag_key)
+
+        if tag_type == '>':
+            return _PartialNode(tag_key, leading_whitespace)
+
+        raise Exception("Invalid symbol for interpolation tag: %s" % repr(tag_type))
+
+    def _make_section_node(self, template, tag_type, tag_key, parsed_section,
+                           section_start_index, section_end_index):
+        """
+        Create and return a section node for the parse tree.
+
+        """
+        if tag_type == '#':
+            return _SectionNode(tag_key, parsed_section, self._delimiters,
+                               template, section_start_index, section_end_index)
+
+        if tag_type == '^':
+            return _InvertedNode(tag_key, parsed_section)
+
+        raise Exception("Invalid symbol for section tag: %s" % repr(tag_type))
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/renderengine.py
@@ -0,0 +1,181 @@
+# coding: utf-8
+
+"""
+Defines a class responsible for rendering logic.
+
+"""
+
+import re
+
+from pystache.common import is_string
+from pystache.parser import parse
+
+
+def context_get(stack, name):
+    """
+    Find and return a name from a ContextStack instance.
+
+    """
+    return stack.get(name)
+
+
+class RenderEngine(object):
+
+    """
+    Provides a render() method.
+
+    This class is meant only for internal use.
+
+    As a rule, the code in this class operates on unicode strings where
+    possible rather than, say, strings of type str or markupsafe.Markup.
+    This means that strings obtained from "external" sources like partials
+    and variable tag values are immediately converted to unicode (or
+    escaped and converted to unicode) before being operated on further.
+    This makes maintaining, reasoning about, and testing the correctness
+    of the code much simpler.  In particular, it keeps the implementation
+    of this class independent of the API details of one (or possibly more)
+    unicode subclasses (e.g. markupsafe.Markup).
+
+    """
+
+    # TODO: it would probably be better for the constructor to accept
+    #   and set as an attribute a single RenderResolver instance
+    #   that encapsulates the customizable aspects of converting
+    #   strings and resolving partials and names from context.
+    def __init__(self, literal=None, escape=None, resolve_context=None,
+                 resolve_partial=None, to_str=None):
+        """
+        Arguments:
+
+          literal: the function used to convert unescaped variable tag
+            values to unicode, e.g. the value corresponding to a tag
+            "{{{name}}}".  The function should accept a string of type
+            str or unicode (or a subclass) and return a string of type
+            unicode (but not a proper subclass of unicode).
+                This class will only pass basestring instances to this
+            function.  For example, it will call str() on integer variable
+            values prior to passing them to this function.
+
+          escape: the function used to escape and convert variable tag
+            values to unicode, e.g. the value corresponding to a tag
+            "{{name}}".  The function should obey the same properties
+            described above for the "literal" function argument.
+                This function should take care to convert any str
+            arguments to unicode just as the literal function should, as
+            this class will not pass tag values to literal prior to passing
+            them to this function.  This allows for more flexibility,
+            for example using a custom escape function that handles
+            incoming strings of type markupsafe.Markup differently
+            from plain unicode strings.
+
+          resolve_context: the function to call to resolve a name against
+            a context stack.  The function should accept two positional
+            arguments: a ContextStack instance and a name to resolve.
+
+          resolve_partial: the function to call when loading a partial.
+            The function should accept a template name string and return a
+            template string of type unicode (not a subclass).
+
+          to_str: a function that accepts an object and returns a string (e.g.
+            the built-in function str).  This function is used for string
+            coercion whenever a string is required (e.g. for converting None
+            or 0 to a string).
+
+        """
+        self.escape = escape
+        self.literal = literal
+        self.resolve_context = resolve_context
+        self.resolve_partial = resolve_partial
+        self.to_str = to_str
+
+    # TODO: Rename context to stack throughout this module.
+
+    # From the spec:
+    #
+    #   When used as the data value for an Interpolation tag, the lambda
+    #   MUST be treatable as an arity 0 function, and invoked as such.
+    #   The returned value MUST be rendered against the default delimiters,
+    #   then interpolated in place of the lambda.
+    #
+    def fetch_string(self, context, name):
+        """
+        Get a value from the given context as a basestring instance.
+
+        """
+        val = self.resolve_context(context, name)
+
+        if callable(val):
+            # Return because _render_value() is already a string.
+            return self._render_value(val(), context)
+
+        if not is_string(val):
+            return self.to_str(val)
+
+        return val
+
+    def fetch_section_data(self, context, name):
+        """
+        Fetch the value of a section as a list.
+
+        """
+        data = self.resolve_context(context, name)
+
+        # From the spec:
+        #
+        #   If the data is not of a list type, it is coerced into a list
+        #   as follows: if the data is truthy (e.g. `!!data == true`),
+        #   use a single-element list containing the data, otherwise use
+        #   an empty list.
+        #
+        if not data:
+            data = []
+        else:
+            # The least brittle way to determine whether something
+            # supports iteration is by trying to call iter() on it:
+            #
+            #   http://docs.python.org/library/functions.html#iter
+            #
+            # It is not sufficient, for example, to check whether the item
+            # implements __iter__ () (the iteration protocol).  There is
+            # also __getitem__() (the sequence protocol).  In Python 2,
+            # strings do not implement __iter__(), but in Python 3 they do.
+            try:
+                iter(data)
+            except TypeError:
+                # Then the value does not support iteration.
+                data = [data]
+            else:
+                if is_string(data) or isinstance(data, dict):
+                    # Do not treat strings and dicts (which are iterable) as lists.
+                    data = [data]
+                # Otherwise, treat the value as a list.
+
+        return data
+
+    def _render_value(self, val, context, delimiters=None):
+        """
+        Render an arbitrary value.
+
+        """
+        if not is_string(val):
+            # In case the template is an integer, for example.
+            val = self.to_str(val)
+        if type(val) is not unicode:
+            val = self.literal(val)
+        return self.render(val, context, delimiters)
+
+    def render(self, template, context_stack, delimiters=None):
+        """
+        Render a unicode template string, and return as unicode.
+
+        Arguments:
+
+          template: a template string of type unicode (but not a proper
+            subclass of unicode).
+
+          context_stack: a ContextStack instance.
+
+        """
+        parsed_template = parse(template, delimiters)
+
+        return parsed_template.render(self, context_stack)
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/renderer.py
@@ -0,0 +1,460 @@
+# coding: utf-8
+
+"""
+This module provides a Renderer class to render templates.
+
+"""
+
+import sys
+
+from pystache import defaults
+from pystache.common import TemplateNotFoundError, MissingTags, is_string
+from pystache.context import ContextStack, KeyNotFoundError
+from pystache.loader import Loader
+from pystache.parsed import ParsedTemplate
+from pystache.renderengine import context_get, RenderEngine
+from pystache.specloader import SpecLoader
+from pystache.template_spec import TemplateSpec
+
+
+class Renderer(object):
+
+    """
+    A class for rendering mustache templates.
+
+    This class supports several rendering options which are described in
+    the constructor's docstring.  Other behavior can be customized by
+    subclassing this class.
+
+    For example, one can pass a string-string dictionary to the constructor
+    to bypass loading partials from the file system:
+
+    >>> partials = {'partial': 'Hello, {{thing}}!'}
+    >>> renderer = Renderer(partials=partials)
+    >>> # We apply print to make the test work in Python 3 after 2to3.
+    >>> print renderer.render('{{>partial}}', {'thing': 'world'})
+    Hello, world!
+
+    To customize string coercion (e.g. to render False values as ''), one can
+    subclass this class.  For example:
+
+        class MyRenderer(Renderer):
+            def str_coerce(self, val):
+                if not val:
+                    return ''
+                else:
+                    return str(val)
+
+    """
+
+    def __init__(self, file_encoding=None, string_encoding=None,
+                 decode_errors=None, search_dirs=None, file_extension=None,
+                 escape=None, partials=None, missing_tags=None):
+        """
+        Construct an instance.
+
+        Arguments:
+
+          file_encoding: the name of the encoding to use by default when
+            reading template files.  All templates are converted to unicode
+            prior to parsing.  Defaults to the package default.
+
+          string_encoding: the name of the encoding to use when converting
+            to unicode any byte strings (type str in Python 2) encountered
+            during the rendering process.  This name will be passed as the
+            encoding argument to the built-in function unicode().
+            Defaults to the package default.
+
+          decode_errors: the string to pass as the errors argument to the
+            built-in function unicode() when converting byte strings to
+            unicode.  Defaults to the package default.
+
+          search_dirs: the list of directories in which to search when
+            loading a template by name or file name.  If given a string,
+            the method interprets the string as a single directory.
+            Defaults to the package default.
+
+          file_extension: the template file extension.  Pass False for no
+            extension (i.e. to use extensionless template files).
+            Defaults to the package default.
+
+          partials: an object (e.g. a dictionary) for custom partial loading
+            during the rendering process.
+                The object should have a get() method that accepts a string
+            and returns the corresponding template as a string, preferably
+            as a unicode string.  If there is no template with that name,
+            the get() method should either return None (as dict.get() does)
+            or raise an exception.
+                If this argument is None, the rendering process will use
+            the normal procedure of locating and reading templates from
+            the file system -- using relevant instance attributes like
+            search_dirs, file_encoding, etc.
+
+          escape: the function used to escape variable tag values when
+            rendering a template.  The function should accept a unicode
+            string (or subclass of unicode) and return an escaped string
+            that is again unicode (or a subclass of unicode).
+                This function need not handle strings of type `str` because
+            this class will only pass it unicode strings.  The constructor
+            assigns this function to the constructed instance's escape()
+            method.
+                To disable escaping entirely, one can pass `lambda u: u`
+            as the escape function, for example.  One may also wish to
+            consider using markupsafe's escape function: markupsafe.escape().
+            This argument defaults to the package default.
+
+          missing_tags: a string specifying how to handle missing tags.
+            If 'strict', an error is raised on a missing tag.  If 'ignore',
+            the value of the tag is the empty string.  Defaults to the
+            package default.
+
+        """
+        if decode_errors is None:
+            decode_errors = defaults.DECODE_ERRORS
+
+        if escape is None:
+            escape = defaults.TAG_ESCAPE
+
+        if file_encoding is None:
+            file_encoding = defaults.FILE_ENCODING
+
+        if file_extension is None:
+            file_extension = defaults.TEMPLATE_EXTENSION
+
+        if missing_tags is None:
+            missing_tags = defaults.MISSING_TAGS
+
+        if search_dirs is None:
+            search_dirs = defaults.SEARCH_DIRS
+
+        if string_encoding is None:
+            string_encoding = defaults.STRING_ENCODING
+
+        if isinstance(search_dirs, basestring):
+            search_dirs = [search_dirs]
+
+        self._context = None
+        self.decode_errors = decode_errors
+        self.escape = escape
+        self.file_encoding = file_encoding
+        self.file_extension = file_extension
+        self.missing_tags = missing_tags
+        self.partials = partials
+        self.search_dirs = search_dirs
+        self.string_encoding = string_encoding
+
+    # This is an experimental way of giving views access to the current context.
+    # TODO: consider another approach of not giving access via a property,
+    #   but instead letting the caller pass the initial context to the
+    #   main render() method by reference.  This approach would probably
+    #   be less likely to be misused.
+    @property
+    def context(self):
+        """
+        Return the current rendering context [experimental].
+
+        """
+        return self._context
+
+    # We could not choose str() as the name because 2to3 renames the unicode()
+    # method of this class to str().
+    def str_coerce(self, val):
+        """
+        Coerce a non-string value to a string.
+
+        This method is called whenever a non-string is encountered during the
+        rendering process when a string is needed (e.g. if a context value
+        for string interpolation is not a string).  To customize string
+        coercion, you can override this method.
+
+        """
+        return str(val)
+
+    def _to_unicode_soft(self, s):
+        """
+        Convert a basestring to unicode, preserving any unicode subclass.
+
+        """
+        # We type-check to avoid "TypeError: decoding Unicode is not supported".
+        # We avoid the Python ternary operator for Python 2.4 support.
+        if isinstance(s, unicode):
+            return s
+        return self.unicode(s)
+
+    def _to_unicode_hard(self, s):
+        """
+        Convert a basestring to a string with type unicode (not subclass).
+
+        """
+        return unicode(self._to_unicode_soft(s))
+
+    def _escape_to_unicode(self, s):
+        """
+        Convert a basestring to unicode (preserving any unicode subclass), and escape it.
+
+        Returns a unicode string (not subclass).
+
+        """
+        return unicode(self.escape(self._to_unicode_soft(s)))
+
+    def unicode(self, b, encoding=None):
+        """
+        Convert a byte string to unicode, using string_encoding and decode_errors.
+
+        Arguments:
+
+          b: a byte string.
+
+          encoding: the name of an encoding.  Defaults to the string_encoding
+            attribute for this instance.
+
+        Raises:
+
+          TypeError: Because this method calls Python's built-in unicode()
+            function, this method raises the following exception if the
+            given string is already unicode:
+
+              TypeError: decoding Unicode is not supported
+
+        """
+        if encoding is None:
+            encoding = self.string_encoding
+
+        # TODO: Wrap UnicodeDecodeErrors with a message about setting
+        # the string_encoding and decode_errors attributes.
+        return unicode(b, encoding, self.decode_errors)
+
+    def _make_loader(self):
+        """
+        Create a Loader instance using current attributes.
+
+        """
+        return Loader(file_encoding=self.file_encoding, extension=self.file_extension,
+                      to_unicode=self.unicode, search_dirs=self.search_dirs)
+
+    def _make_load_template(self):
+        """
+        Return a function that loads a template by name.
+
+        """
+        loader = self._make_loader()
+
+        def load_template(template_name):
+            return loader.load_name(template_name)
+
+        return load_template
+
+    def _make_load_partial(self):
+        """
+        Return a function that loads a partial by name.
+
+        """
+        if self.partials is None:
+            return self._make_load_template()
+
+        # Otherwise, create a function from the custom partial loader.
+        partials = self.partials
+
+        def load_partial(name):
+            # TODO: consider using EAFP here instead.
+            #     http://docs.python.org/glossary.html#term-eafp
+            #   This would mean requiring that the custom partial loader
+            #   raise a KeyError on name not found.
+            template = partials.get(name)
+            if template is None:
+                raise TemplateNotFoundError("Name %s not found in partials: %s" %
+                                            (repr(name), type(partials)))
+
+            # RenderEngine requires that the return value be unicode.
+            return self._to_unicode_hard(template)
+
+        return load_partial
+
+    def _is_missing_tags_strict(self):
+        """
+        Return whether missing_tags is set to strict.
+
+        """
+        val = self.missing_tags
+
+        if val == MissingTags.strict:
+            return True
+        elif val == MissingTags.ignore:
+            return False
+
+        raise Exception("Unsupported 'missing_tags' value: %s" % repr(val))
+
+    def _make_resolve_partial(self):
+        """
+        Return the resolve_partial function to pass to RenderEngine.__init__().
+
+        """
+        load_partial = self._make_load_partial()
+
+        if self._is_missing_tags_strict():
+            return load_partial
+        # Otherwise, ignore missing tags.
+
+        def resolve_partial(name):
+            try:
+                return load_partial(name)
+            except TemplateNotFoundError:
+                return u''
+
+        return resolve_partial
+
+    def _make_resolve_context(self):
+        """
+        Return the resolve_context function to pass to RenderEngine.__init__().
+
+        """
+        if self._is_missing_tags_strict():
+            return context_get
+        # Otherwise, ignore missing tags.
+
+        def resolve_context(stack, name):
+            try:
+                return context_get(stack, name)
+            except KeyNotFoundError:
+                return u''
+
+        return resolve_context
+
+    def _make_render_engine(self):
+        """
+        Return a RenderEngine instance for rendering.
+
+        """
+        resolve_context = self._make_resolve_context()
+        resolve_partial = self._make_resolve_partial()
+
+        engine = RenderEngine(literal=self._to_unicode_hard,
+                              escape=self._escape_to_unicode,
+                              resolve_context=resolve_context,
+                              resolve_partial=resolve_partial,
+                              to_str=self.str_coerce)
+        return engine
+
+    # TODO: add unit tests for this method.
+    def load_template(self, template_name):
+        """
+        Load a template by name from the file system.
+
+        """
+        load_template = self._make_load_template()
+        return load_template(template_name)
+
+    def _render_object(self, obj, *context, **kwargs):
+        """
+        Render the template associated with the given object.
+
+        """
+        loader = self._make_loader()
+
+        # TODO: consider an approach that does not require using an if
+        #   block here.  For example, perhaps this class's loader can be
+        #   a SpecLoader in all cases, and the SpecLoader instance can
+        #   check the object's type.  Or perhaps Loader and SpecLoader
+        #   can be refactored to implement the same interface.
+        if isinstance(obj, TemplateSpec):
+            loader = SpecLoader(loader)
+            template = loader.load(obj)
+        else:
+            template = loader.load_object(obj)
+
+        context = [obj] + list(context)
+
+        return self._render_string(template, *context, **kwargs)
+
+    def render_name(self, template_name, *context, **kwargs):
+        """
+        Render the template with the given name using the given context.
+
+        See the render() docstring for more information.
+
+        """
+        loader = self._make_loader()
+        template = loader.load_name(template_name)
+        return self._render_string(template, *context, **kwargs)
+
+    def render_path(self, template_path, *context, **kwargs):
+        """
+        Render the template at the given path using the given context.
+
+        Read the render() docstring for more information.
+
+        """
+        loader = self._make_loader()
+        template = loader.read(template_path)
+
+        return self._render_string(template, *context, **kwargs)
+
+    def _render_string(self, template, *context, **kwargs):
+        """
+        Render the given template string using the given context.
+
+        """
+        # RenderEngine.render() requires that the template string be unicode.
+        template = self._to_unicode_hard(template)
+
+        render_func = lambda engine, stack: engine.render(template, stack)
+
+        return self._render_final(render_func, *context, **kwargs)
+
+    # All calls to render() should end here because it prepares the
+    # context stack correctly.
+    def _render_final(self, render_func, *context, **kwargs):
+        """
+        Arguments:
+
+          render_func: a function that accepts a RenderEngine and ContextStack
+            instance and returns a template rendering as a unicode string.
+
+        """
+        stack = ContextStack.create(*context, **kwargs)
+        self._context = stack
+
+        engine = self._make_render_engine()
+
+        return render_func(engine, stack)
+
+    def render(self, template, *context, **kwargs):
+        """
+        Render the given template string, view template, or parsed template.
+
+        Returns a unicode string.
+
+        Prior to rendering, this method will convert a template that is a
+        byte string (type str in Python 2) to unicode using the string_encoding
+        and decode_errors attributes.  See the constructor docstring for
+        more information.
+
+        Arguments:
+
+          template: a template string that is unicode or a byte string,
+            a ParsedTemplate instance, or another object instance.  In the
+            final case, the function first looks for the template associated
+            to the object by calling this class's get_associated_template()
+            method.  The rendering process also uses the passed object as
+            the first element of the context stack when rendering.
+
+          *context: zero or more dictionaries, ContextStack instances, or objects
+            with which to populate the initial context stack.  None
+            arguments are skipped.  Items in the *context list are added to
+            the context stack in order so that later items in the argument
+            list take precedence over earlier items.
+
+          **kwargs: additional key-value data to add to the context stack.
+            As these arguments appear after all items in the *context list,
+            in the case of key conflicts these values take precedence over
+            all items in the *context list.
+
+        """
+        if is_string(template):
+            return self._render_string(template, *context, **kwargs)
+        if isinstance(template, ParsedTemplate):
+            render_func = lambda engine, stack: template.render(engine, stack)
+            return self._render_final(render_func, *context, **kwargs)
+        # Otherwise, we assume the template is an object.
+
+        return self._render_object(template, *context, **kwargs)
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/specloader.py
@@ -0,0 +1,90 @@
+# coding: utf-8
+
+"""
+This module supports customized (aka special or specified) template loading.
+
+"""
+
+import os.path
+
+from pystache.loader import Loader
+
+
+# TODO: add test cases for this class.
+class SpecLoader(object):
+
+    """
+    Supports loading custom-specified templates (from TemplateSpec instances).
+
+    """
+
+    def __init__(self, loader=None):
+        if loader is None:
+            loader = Loader()
+
+        self.loader = loader
+
+    def _find_relative(self, spec):
+        """
+        Return the path to the template as a relative (dir, file_name) pair.
+
+        The directory returned is relative to the directory containing the
+        class definition of the given object.  The method returns None for
+        this directory if the directory is unknown without first searching
+        the search directories.
+
+        """
+        if spec.template_rel_path is not None:
+            return os.path.split(spec.template_rel_path)
+        # Otherwise, determine the file name separately.
+
+        locator = self.loader._make_locator()
+
+        # We do not use the ternary operator for Python 2.4 support.
+        if spec.template_name is not None:
+            template_name = spec.template_name
+        else:
+            template_name = locator.make_template_name(spec)
+
+        file_name = locator.make_file_name(template_name, spec.template_extension)
+
+        return (spec.template_rel_directory, file_name)
+
+    def _find(self, spec):
+        """
+        Find and return the path to the template associated to the instance.
+
+        """
+        if spec.template_path is not None:
+            return spec.template_path
+
+        dir_path, file_name = self._find_relative(spec)
+
+        locator = self.loader._make_locator()
+
+        if dir_path is None:
+            # Then we need to search for the path.
+            path = locator.find_object(spec, self.loader.search_dirs, file_name=file_name)
+        else:
+            obj_dir = locator.get_object_directory(spec)
+            path = os.path.join(obj_dir, dir_path, file_name)
+
+        return path
+
+    def load(self, spec):
+        """
+        Find and return the template associated to a TemplateSpec instance.
+
+        Returns the template as a unicode string.
+
+        Arguments:
+
+          spec: a TemplateSpec instance.
+
+        """
+        if spec.template is not None:
+            return self.loader.unicode(spec.template, spec.template_encoding)
+
+        path = self._find(spec)
+
+        return self.loader.read(path, spec.template_encoding)
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/template_spec.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+Provides a class to customize template information on a per-view basis.
+
+To customize template properties for a particular view, create that view
+from a class that subclasses TemplateSpec.  The "spec" in TemplateSpec
+stands for "special" or "specified" template information.
+
+"""
+
+class TemplateSpec(object):
+
+    """
+    A mixin or interface for specifying custom template information.
+
+    The "spec" in TemplateSpec can be taken to mean that the template
+    information is either "specified" or "special."
+
+    A view should subclass this class only if customized template loading
+    is needed.  The following attributes allow one to customize/override
+    template information on a per view basis.  A None value means to use
+    default behavior for that value and perform no customization.  All
+    attributes are initialized to None.
+
+    Attributes:
+
+      template: the template as a string.
+
+      template_encoding: the encoding used by the template.
+
+      template_extension: the template file extension.  Defaults to "mustache".
+        Pass False for no extension (i.e. extensionless template files).
+
+      template_name: the name of the template.
+
+      template_path: absolute path to the template.
+
+      template_rel_directory: the directory containing the template file,
+        relative to the directory containing the module defining the class.
+
+      template_rel_path: the path to the template file, relative to the
+        directory containing the module defining the class.
+
+    """
+
+    template = None
+    template_encoding = None
+    template_extension = None
+    template_name = None
+    template_path = None
+    template_rel_directory = None
+    template_rel_path = None
new file mode 100644
--- /dev/null
+++ b/python/pystache/setup.py
@@ -0,0 +1,413 @@
+#!/usr/bin/env python
+# coding: utf-8
+
+"""
+This script supports publishing Pystache to PyPI.
+
+This docstring contains instructions to Pystache maintainers on how
+to release a new version of Pystache.
+
+(1) Prepare the release.
+
+Make sure the code is finalized and merged to master.  Bump the version
+number in setup.py, update the release date in the HISTORY file, etc.
+
+Generate the reStructuredText long_description using--
+
+    $ python setup.py prep
+
+and be sure this new version is checked in.  You must have pandoc installed
+to do this step:
+
+    http://johnmacfarlane.net/pandoc/
+
+It helps to review this auto-generated file on GitHub prior to uploading
+because the long description will be sent to PyPI and appear there after
+publishing.  PyPI attempts to convert this string to HTML before displaying
+it on the PyPI project page.  If PyPI finds any issues, it will render it
+instead as plain-text, which we do not want.
+
+To check in advance that PyPI will accept and parse the reST file as HTML,
+you can use the rst2html program installed by the docutils package
+(http://docutils.sourceforge.net/).  To install docutils:
+
+    $ pip install docutils
+
+To check the file, run the following command and confirm that it reports
+no warnings:
+
+    $ python setup.py --long-description | rst2html.py -v --no-raw > out.html
+
+See here for more information:
+
+    http://docs.python.org/distutils/uploading.html#pypi-package-display
+
+(2) Push to PyPI.  To release a new version of Pystache to PyPI--
+
+    http://pypi.python.org/pypi/pystache
+
+create a PyPI user account if you do not already have one.  The user account
+will need permissions to push to PyPI.  A current "Package Index Owner" of
+Pystache can grant you those permissions.
+
+When you have permissions, run the following:
+
+    python setup.py publish
+
+If you get an error like the following--
+
+    Upload failed (401): You must be identified to edit package information
+
+then add a file called .pyirc to your home directory with the following
+contents:
+
+    [server-login]
+    username: <PyPI username>
+    password: <PyPI password>
+
+as described here, for example:
+
+    http://docs.python.org/release/2.5.2/dist/pypirc.html
+
+(3) Tag the release on GitHub.  Here are some commands for tagging.
+
+List current tags:
+
+    git tag -l -n3
+
+Create an annotated tag:
+
+    git tag -a -m "Version 0.5.1" "v0.5.1"
+
+Push a tag to GitHub:
+
+    git push --tags defunkt v0.5.1
+
+"""
+
+import os
+import shutil
+import sys
+
+
+py_version = sys.version_info
+
+# distutils does not seem to support the following setup() arguments.
+# It displays a UserWarning when setup() is passed those options:
+#
+#  * entry_points
+#  * install_requires
+#
+# distribute works with Python 2.3.5 and above:
+#
+#   http://packages.python.org/distribute/setuptools.html#building-and-distributing-packages-with-distribute
+#
+if py_version < (2, 3, 5):
+    # TODO: this might not work yet.
+    import distutils as dist
+    from distutils import core
+    setup = core.setup
+else:
+    import setuptools as dist
+    setup = dist.setup
+
+
+VERSION = '0.5.4'  # Also change in pystache/__init__.py.
+
+FILE_ENCODING = 'utf-8'
+
+README_PATH = 'README.md'
+HISTORY_PATH = 'HISTORY.md'
+LICENSE_PATH = 'LICENSE'
+
+RST_DESCRIPTION_PATH = 'setup_description.rst'
+
+TEMP_EXTENSION = '.temp'
+
+PREP_COMMAND = 'prep'
+
+CLASSIFIERS = (
+    'Development Status :: 4 - Beta',
+    'License :: OSI Approved :: MIT License',
+    'Programming Language :: Python',
+    'Programming Language :: Python :: 2',
+    'Programming Language :: Python :: 2.4',
+    'Programming Language :: Python :: 2.5',
+    'Programming Language :: Python :: 2.6',
+    'Programming Language :: Python :: 2.7',
+    'Programming Language :: Python :: 3',
+    'Programming Language :: Python :: 3.1',
+    'Programming Language :: Python :: 3.2',
+    'Programming Language :: Python :: 3.3',
+    'Programming Language :: Python :: Implementation :: PyPy',
+)
+
+# Comments in reST begin with two dots.
+RST_LONG_DESCRIPTION_INTRO = """\
+.. Do not edit this file.  This file is auto-generated for PyPI by setup.py
+.. using pandoc, so edits should go in the source files rather than here.
+"""
+
+
+def read(path):
+    """
+    Read and return the contents of a text file as a unicode string.
+
+    """
+    # This function implementation was chosen to be compatible across Python 2/3.
+    f = open(path, 'rb')
+    # We avoid use of the with keyword for Python 2.4 support.
+    try:
+        b = f.read()
+    finally:
+        f.close()
+
+    return b.decode(FILE_ENCODING)
+
+
+def write(u, path):
+    """
+    Write a unicode string to a file (as utf-8).
+
+    """
+    print("writing to: %s" % path)
+    # This function implementation was chosen to be compatible across Python 2/3.
+    f = open(path, "wb")
+    try:
+        b = u.encode(FILE_ENCODING)
+        f.write(b)
+    finally:
+        f.close()
+
+
+def make_temp_path(path, new_ext=None):
+    """
+    Arguments:
+
+      new_ext: the new file extension, including the leading dot.
+        Defaults to preserving the existing file extension.
+
+    """
+    root, ext = os.path.splitext(path)
+    if new_ext is None:
+        new_ext = ext
+    temp_path = root + TEMP_EXTENSION + new_ext
+    return temp_path
+
+
+def strip_html_comments(text):
+    """Strip HTML comments from a unicode string."""
+    lines = text.splitlines(True)  # preserve line endings.
+
+    # Remove HTML comments (which we only allow to take a special form).
+    new_lines = filter(lambda line: not line.startswith("<!--"), lines)
+
+    return "".join(new_lines)
+
+
+# We write the converted file to a temp file to simplify debugging and
+# to avoid removing a valid pre-existing file on failure.
+def convert_md_to_rst(md_path, rst_temp_path):
+    """
+    Convert the contents of a file from Markdown to reStructuredText.
+
+    Returns the converted text as a Unicode string.
+
+    Arguments:
+
+      md_path: a path to a UTF-8 encoded Markdown file to convert.
+
+      rst_temp_path: a temporary path to which to write the converted contents.
+
+    """
+    # Pandoc uses the UTF-8 character encoding for both input and output.
+    command = "pandoc --write=rst --output=%s %s" % (rst_temp_path, md_path)
+    print("converting with pandoc: %s to %s\n-->%s" % (md_path, rst_temp_path,
+                                                       command))
+
+    if os.path.exists(rst_temp_path):
+        os.remove(rst_temp_path)
+
+    os.system(command)
+
+    if not os.path.exists(rst_temp_path):
+        s = ("Error running: %s\n"
+             "  Did you install pandoc per the %s docstring?" % (command,
+                                                                 __file__))
+        sys.exit(s)
+
+    return read(rst_temp_path)
+
+
+# The long_description needs to be formatted as reStructuredText.
+# See the following for more information:
+#
+#   http://docs.python.org/distutils/setupscript.html#additional-meta-data
+#   http://docs.python.org/distutils/uploading.html#pypi-package-display
+#
+def make_long_description():
+    """
+    Generate the reST long_description for setup() from source files.
+
+    Returns the generated long_description as a unicode string.
+
+    """
+    readme_path = README_PATH
+
+    # Remove our HTML comments because PyPI does not allow it.
+    # See the setup.py docstring for more info on this.
+    readme_md = strip_html_comments(read(readme_path))
+    history_md = strip_html_comments(read(HISTORY_PATH))
+    license_md = """\
+License
+=======
+
+""" + read(LICENSE_PATH)
+
+    sections = [readme_md, history_md, license_md]
+    md_description = '\n\n'.join(sections)
+
+    # Write the combined Markdown file to a temp path.
+    md_ext = os.path.splitext(readme_path)[1]
+    md_description_path = make_temp_path(RST_DESCRIPTION_PATH, new_ext=md_ext)
+    write(md_description, md_description_path)
+
+    rst_temp_path = make_temp_path(RST_DESCRIPTION_PATH)
+    long_description = convert_md_to_rst(md_path=md_description_path,
+                                         rst_temp_path=rst_temp_path)
+
+    return "\n".join([RST_LONG_DESCRIPTION_INTRO, long_description])
+
+
+def prep():
+    """Update the reST long_description file."""
+    long_description = make_long_description()
+    write(long_description, RST_DESCRIPTION_PATH)
+
+
+def publish():
+    """Publish this package to PyPI (aka "the Cheeseshop")."""
+    long_description = make_long_description()
+
+    if long_description != read(RST_DESCRIPTION_PATH):
+        print("""\
+Description file not up-to-date: %s
+Run the following command and commit the changes--
+
+    python setup.py %s
+""" % (RST_DESCRIPTION_PATH, PREP_COMMAND))
+        sys.exit()
+
+    print("Description up-to-date: %s" % RST_DESCRIPTION_PATH)
+
+    answer = raw_input("Are you sure you want to publish to PyPI (yes/no)?")
+
+    if answer != "yes":
+        exit("Aborted: nothing published")
+
+    os.system('python setup.py sdist upload')
+
+
+# We use the package simplejson for older Python versions since Python
+# does not contain the module json before 2.6:
+#
+#   http://docs.python.org/library/json.html
+#
+# Moreover, simplejson stopped officially support for Python 2.4 in version 2.1.0:
+#
+#   https://github.com/simplejson/simplejson/blob/master/CHANGES.txt
+#
+requires = []
+if py_version < (2, 5):
+    requires.append('simplejson<2.1')
+elif py_version < (2, 6):
+    requires.append('simplejson')
+
+INSTALL_REQUIRES = requires
+
+# TODO: decide whether to use find_packages() instead.  I'm not sure that
+#   find_packages() is available with distutils, for example.
+PACKAGES = [
+    'pystache',
+    'pystache.commands',
+    # The following packages are only for testing.
+    'pystache.tests',
+    'pystache.tests.data',
+    'pystache.tests.data.locator',
+    'pystache.tests.examples',
+]
+
+
+# The purpose of this function is to follow the guidance suggested here:
+#
+#   http://packages.python.org/distribute/python3.html#note-on-compatibility-with-setuptools
+#
+# The guidance is for better compatibility when using setuptools (e.g. with
+# earlier versions of Python 2) instead of Distribute, because of new
+# keyword arguments to setup() that setuptools may not recognize.
+def get_extra_args():
+    """
+    Return a dictionary of extra args to pass to setup().
+
+    """
+    extra = {}
+    # TODO: it might be more correct to check whether we are using
+    #   Distribute instead of setuptools, since use_2to3 doesn't take
+    #   effect when using Python 2, even when using Distribute.
+    if py_version >= (3, ):
+        # Causes 2to3 to be run during the build step.
+        extra['use_2to3'] = True
+
+    return extra
+
+
+def main(sys_argv):
+
+    # TODO: use the logging module instead of printing.
+    # TODO: include the following in a verbose mode.
+    sys.stderr.write("pystache: using: version %s of %s\n" % (repr(dist.__version__), repr(dist)))
+
+    command = sys_argv[-1]
+
+    if command == 'publish':
+        publish()
+        sys.exit()
+    elif command == PREP_COMMAND:
+        prep()
+        sys.exit()
+
+    long_description = read(RST_DESCRIPTION_PATH)
+    template_files = ['*.mustache', '*.txt']
+    extra_args = get_extra_args()
+
+    setup(name='pystache',
+          version=VERSION,
+          license='MIT',
+          description='Mustache for Python',
+          long_description=long_description,
+          author='Chris Wanstrath',
+          author_email='chris@ozmm.org',
+          maintainer='Chris Jerdonek',
+          maintainer_email='chris.jerdonek@gmail.com',
+          url='http://github.com/defunkt/pystache',
+          install_requires=INSTALL_REQUIRES,
+          packages=PACKAGES,
+          package_data = {
+              # Include template files so tests can be run.
+              'pystache.tests.data': template_files,
+              'pystache.tests.data.locator': template_files,
+              'pystache.tests.examples': template_files,
+          },
+          entry_points = {
+            'console_scripts': [
+                'pystache=pystache.commands.render:main',
+                'pystache-test=pystache.commands.test:main',
+            ],
+          },
+          classifiers = CLASSIFIERS,
+          **extra_args
+    )
+
+
+if __name__=='__main__':
+    main(sys.argv)
new file mode 100644
--- /dev/null
+++ b/python/pystache/setup_description.rst
@@ -0,0 +1,513 @@
+.. Do not edit this file.  This file is auto-generated for PyPI by setup.py
+.. using pandoc, so edits should go in the source files rather than here.
+
+Pystache
+========
+
+.. figure:: http://defunkt.github.com/pystache/images/logo_phillips.png
+   :alt: mustachioed, monocled snake by David Phillips
+
+.. figure:: https://secure.travis-ci.org/defunkt/pystache.png
+   :alt: Travis CI current build status
+
+`Pystache <http://defunkt.github.com/pystache>`__ is a Python
+implementation of `Mustache <http://mustache.github.com/>`__. Mustache
+is a framework-agnostic, logic-free templating system inspired by
+`ctemplate <http://code.google.com/p/google-ctemplate/>`__ and
+`et <http://www.ivan.fomichev.name/2008/05/erlang-template-engine-prototype.html>`__.
+Like ctemplate, Mustache "emphasizes separating logic from presentation:
+it is impossible to embed application logic in this template language."
+
+The `mustache(5) <http://mustache.github.com/mustache.5.html>`__ man
+page provides a good introduction to Mustache's syntax. For a more
+complete (and more current) description of Mustache's behavior, see the
+official `Mustache spec <https://github.com/mustache/spec>`__.
+
+Pystache is `semantically versioned <http://semver.org>`__ and can be
+found on `PyPI <http://pypi.python.org/pypi/pystache>`__. This version
+of Pystache passes all tests in `version
+1.1.2 <https://github.com/mustache/spec/tree/v1.1.2>`__ of the spec.
+
+Requirements
+------------
+
+Pystache is tested with--
+
+-  Python 2.4 (requires simplejson `version
+   2.0.9 <http://pypi.python.org/pypi/simplejson/2.0.9>`__ or earlier)
+-  Python 2.5 (requires
+   `simplejson <http://pypi.python.org/pypi/simplejson/>`__)
+-  Python 2.6
+-  Python 2.7
+-  Python 3.1
+-  Python 3.2
+-  Python 3.3
+-  `PyPy <http://pypy.org/>`__
+
+`Distribute <http://packages.python.org/distribute/>`__ (the setuptools
+fork) is recommended over
+`setuptools <http://pypi.python.org/pypi/setuptools>`__, and is required
+in some cases (e.g. for Python 3 support). If you use
+`pip <http://www.pip-installer.org/>`__, you probably already satisfy
+this requirement.
+
+JSON support is needed only for the command-line interface and to run
+the spec tests. We require simplejson for earlier versions of Python
+since Python's `json <http://docs.python.org/library/json.html>`__
+module was added in Python 2.6.
+
+For Python 2.4 we require an earlier version of simplejson since
+simplejson stopped officially supporting Python 2.4 in simplejson
+version 2.1.0. Earlier versions of simplejson can be installed manually,
+as follows:
+
+::
+
+    pip install 'simplejson<2.1.0'
+
+Official support for Python 2.4 will end with Pystache version 0.6.0.
+
+Install It
+----------
+
+::
+
+    pip install pystache
+
+And test it--
+
+::
+
+    pystache-test
+
+To install and test from source (e.g. from GitHub), see the Develop
+section.
+
+Use It
+------
+
+::
+
+    >>> import pystache
+    >>> print pystache.render('Hi {{person}}!', {'person': 'Mom'})
+    Hi Mom!
+
+You can also create dedicated view classes to hold your view logic.
+
+Here's your view class (in .../examples/readme.py):
+
+::
+
+    class SayHello(object):
+        def to(self):
+            return "Pizza"
+
+Instantiating like so:
+
+::
+
+    >>> from pystache.tests.examples.readme import SayHello
+    >>> hello = SayHello()
+
+Then your template, say\_hello.mustache (by default in the same
+directory as your class definition):
+
+::
+
+    Hello, {{to}}!
+
+Pull it together:
+
+::
+
+    >>> renderer = pystache.Renderer()
+    >>> print renderer.render(hello)
+    Hello, Pizza!
+
+For greater control over rendering (e.g. to specify a custom template
+directory), use the ``Renderer`` class like above. One can pass
+attributes to the Renderer class constructor or set them on a Renderer
+instance. To customize template loading on a per-view basis, subclass
+``TemplateSpec``. See the docstrings of the
+`Renderer <https://github.com/defunkt/pystache/blob/master/pystache/renderer.py>`__
+class and
+`TemplateSpec <https://github.com/defunkt/pystache/blob/master/pystache/template_spec.py>`__
+class for more information.
+
+You can also pre-parse a template:
+
+::
+
+    >>> parsed = pystache.parse(u"Hey {{#who}}{{.}}!{{/who}}")
+    >>> print parsed
+    [u'Hey ', _SectionNode(key=u'who', index_begin=12, index_end=18, parsed=[_EscapeNode(key=u'.'), u'!'])]
+
+And then:
+
+::
+
+    >>> print renderer.render(parsed, {'who': 'Pops'})
+    Hey Pops!
+    >>> print renderer.render(parsed, {'who': 'you'})
+    Hey you!
+
+Python 3
+--------
+
+Pystache has supported Python 3 since version 0.5.1. Pystache behaves
+slightly differently between Python 2 and 3, as follows:
+
+-  In Python 2, the default html-escape function ``cgi.escape()`` does
+   not escape single quotes. In Python 3, the default escape function
+   ``html.escape()`` does escape single quotes.
+-  In both Python 2 and 3, the string and file encodings default to
+   ``sys.getdefaultencoding()``. However, this function can return
+   different values under Python 2 and 3, even when run from the same
+   system. Check your own system for the behavior on your system, or do
+   not rely on the defaults by passing in the encodings explicitly (e.g.
+   to the ``Renderer`` class).
+
+Unicode
+-------
+
+This section describes how Pystache handles unicode, strings, and
+encodings.
+
+Internally, Pystache uses `only unicode
+strings <http://docs.python.org/howto/unicode.html#tips-for-writing-unicode-aware-programs>`__
+(``str`` in Python 3 and ``unicode`` in Python 2). For input, Pystache
+accepts both unicode strings and byte strings (``bytes`` in Python 3 and
+``str`` in Python 2). For output, Pystache's template rendering methods
+return only unicode.
+
+Pystache's ``Renderer`` class supports a number of attributes to control
+how Pystache converts byte strings to unicode on input. These include
+the ``file_encoding``, ``string_encoding``, and ``decode_errors``
+attributes.
+
+The ``file_encoding`` attribute is the encoding the renderer uses to
+convert to unicode any files read from the file system. Similarly,
+``string_encoding`` is the encoding the renderer uses to convert any
+other byte strings encountered during the rendering process into unicode
+(e.g. context values that are encoded byte strings).
+
+The ``decode_errors`` attribute is what the renderer passes as the
+``errors`` argument to Python's built-in unicode-decoding function
+(``str()`` in Python 3 and ``unicode()`` in Python 2). The valid values
+for this argument are ``strict``, ``ignore``, and ``replace``.
+
+Each of these attributes can be set via the ``Renderer`` class's
+constructor using a keyword argument of the same name. See the Renderer
+class's docstrings for further details. In addition, the
+``file_encoding`` attribute can be controlled on a per-view basis by
+subclassing the ``TemplateSpec`` class. When not specified explicitly,
+these attributes default to values set in Pystache's ``defaults``
+module.
+
+Develop
+-------
+
+To test from a source distribution (without installing)--
+
+::
+
+    python test_pystache.py
+
+To test Pystache with multiple versions of Python (with a single
+command!), you can use `tox <http://pypi.python.org/pypi/tox>`__:
+
+::
+
+    pip install 'virtualenv<1.8'  # Version 1.8 dropped support for Python 2.4.
+    pip install 'tox<1.4'  # Version 1.4 dropped support for Python 2.4.
+    tox
+
+If you do not have all Python versions listed in ``tox.ini``--
+
+::
+
+    tox -e py26,py32  # for example
+
+The source distribution tests also include doctests and tests from the
+Mustache spec. To include tests from the Mustache spec in your test
+runs:
+
+::
+
+    git submodule init
+    git submodule update
+
+The test harness parses the spec's (more human-readable) yaml files if
+`PyYAML <http://pypi.python.org/pypi/PyYAML>`__ is present. Otherwise,
+it parses the json files. To install PyYAML--
+
+::
+
+    pip install pyyaml
+
+To run a subset of the tests, you can use
+`nose <http://somethingaboutorange.com/mrl/projects/nose/0.11.1/testing.html>`__:
+
+::
+
+    pip install nose
+    nosetests --tests pystache/tests/test_context.py:GetValueTests.test_dictionary__key_present
+
+Using Python 3 with Pystache from source
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Pystache is written in Python 2 and must be converted to Python 3 prior
+to using it with Python 3. The installation process (and tox) do this
+automatically.
+
+To convert the code to Python 3 manually (while using Python 3)--
+
+::
+
+    python setup.py build
+
+This writes the converted code to a subdirectory called ``build``. By
+design, Python 3 builds
+`cannot <https://bitbucket.org/tarek/distribute/issue/292/allow-use_2to3-with-python-2>`__
+be created from Python 2.
+
+To convert the code without using setup.py, you can use
+`2to3 <http://docs.python.org/library/2to3.html>`__ as follows (two
+steps)--
+
+::
+
+    2to3 --write --nobackups --no-diffs --doctests_only pystache
+    2to3 --write --nobackups --no-diffs pystache
+
+This converts the code (and doctests) in place.
+
+To ``import pystache`` from a source distribution while using Python 3,
+be sure that you are importing from a directory containing a converted
+version of the code (e.g. from the ``build`` directory after
+converting), and not from the original (unconverted) source directory.
+Otherwise, you will get a syntax error. You can help prevent this by not
+running the Python IDE from the project directory when importing
+Pystache while using Python 3.
+
+Mailing List
+------------
+
+There is a `mailing list <http://librelist.com/browser/pystache/>`__.
+Note that there is a bit of a delay between posting a message and seeing
+it appear in the mailing list archive.
+
+Credits
+-------
+
+::
+
+    >>> context = { 'author': 'Chris Wanstrath', 'maintainer': 'Chris Jerdonek' }
+    >>> print pystache.render("Author: {{author}}\nMaintainer: {{maintainer}}", context)
+    Author: Chris Wanstrath
+    Maintainer: Chris Jerdonek
+
+Pystache logo by `David Phillips <http://davidphillips.us/>`__ is
+licensed under a `Creative Commons Attribution-ShareAlike 3.0 Unported
+License <http://creativecommons.org/licenses/by-sa/3.0/deed.en_US>`__.
+|image0|
+
+History
+=======
+
+**Note:** Official support for Python 2.4 will end with Pystache version
+0.6.0.
+
+0.5.4 (2014-07-11)
+------------------
+
+-  Bugfix: made test with filenames OS agnostic (issue #162).
+
+0.5.3 (2012-11-03)
+------------------
+
+-  Added ability to customize string coercion (e.g. to have None render
+   as ``''``) (issue #130).
+-  Added Renderer.render\_name() to render a template by name (issue
+   #122).
+-  Added TemplateSpec.template\_path to specify an absolute path to a
+   template (issue #41).
+-  Added option of raising errors on missing tags/partials:
+   ``Renderer(missing_tags='strict')`` (issue #110).
+-  Added support for finding and loading templates by file name in
+   addition to by template name (issue #127). [xgecko]
+-  Added a ``parse()`` function that yields a printable, pre-compiled
+   parse tree.
+-  Added support for rendering pre-compiled templates.
+-  Added Python 3.3 to the list of supported versions.
+-  Added support for `PyPy <http://pypy.org/>`__ (issue #125).
+-  Added support for `Travis CI <http://travis-ci.org>`__ (issue #124).
+   [msabramo]
+-  Bugfix: ``defaults.DELIMITERS`` can now be changed at runtime (issue
+   #135). [bennoleslie]
+-  Bugfix: exceptions raised from a property are no longer swallowed
+   when getting a key from a context stack (issue #110).
+-  Bugfix: lambda section values can now return non-ascii, non-unicode
+   strings (issue #118).
+-  Bugfix: allow ``test_pystache.py`` and ``tox`` to pass when run from
+   a downloaded sdist (i.e. without the spec test directory).
+-  Convert HISTORY and README files from reST to Markdown.
+-  More robust handling of byte strings in Python 3.
+-  Added Creative Commons license for David Phillips's logo.
+
+0.5.2 (2012-05-03)
+------------------
+
+-  Added support for dot notation and version 1.1.2 of the spec (issue
+   #99). [rbp]
+-  Missing partials now render as empty string per latest version of
+   spec (issue #115).
+-  Bugfix: falsey values now coerced to strings using str().
+-  Bugfix: lambda return values for sections no longer pushed onto
+   context stack (issue #113).
+-  Bugfix: lists of lambdas for sections were not rendered (issue #114).
+
+0.5.1 (2012-04-24)
+------------------
+
+-  Added support for Python 3.1 and 3.2.
+-  Added tox support to test multiple Python versions.
+-  Added test script entry point: pystache-test.
+-  Added \_\_version\_\_ package attribute.
+-  Test harness now supports both YAML and JSON forms of Mustache spec.
+-  Test harness no longer requires nose.
+
+0.5.0 (2012-04-03)
+------------------
+
+This version represents a major rewrite and refactoring of the code base
+that also adds features and fixes many bugs. All functionality and
+nearly all unit tests have been preserved. However, some backwards
+incompatible changes to the API have been made.
+
+Below is a selection of some of the changes (not exhaustive).
+
+Highlights:
+
+-  Pystache now passes all tests in version 1.0.3 of the `Mustache
+   spec <https://github.com/mustache/spec>`__. [pvande]
+-  Removed View class: it is no longer necessary to subclass from View
+   or from any other class to create a view.
+-  Replaced Template with Renderer class: template rendering behavior
+   can be modified via the Renderer constructor or by setting attributes
+   on a Renderer instance.
+-  Added TemplateSpec class: template rendering can be specified on a
+   per-view basis by subclassing from TemplateSpec.
+-  Introduced separation of concerns and removed circular dependencies
+   (e.g. between Template and View classes, cf. `issue
+   #13 <https://github.com/defunkt/pystache/issues/13>`__).
+-  Unicode now used consistently throughout the rendering process.
+-  Expanded test coverage: nosetests now runs doctests and ~105 test
+   cases from the Mustache spec (increasing the number of tests from 56
+   to ~315).
+-  Added a rudimentary benchmarking script to gauge performance while
+   refactoring.
+-  Extensive documentation added (e.g. docstrings).
+
+Other changes:
+
+-  Added a command-line interface. [vrde]
+-  The main rendering class now accepts a custom partial loader (e.g. a
+   dictionary) and a custom escape function.
+-  Non-ascii characters in str strings are now supported while
+   rendering.
+-  Added string encoding, file encoding, and errors options for decoding
+   to unicode.
+-  Removed the output encoding option.
+-  Removed the use of markupsafe.
+
+Bug fixes:
+
+-  Context values no longer processed as template strings.
+   [jakearchibald]
+-  Whitespace surrounding sections is no longer altered, per the spec.
+   [heliodor]
+-  Zeroes now render correctly when using PyPy. [alex]
+-  Multline comments now permitted. [fczuardi]
+-  Extensionless template files are now supported.
+-  Passing ``**kwargs`` to ``Template()`` no longer modifies the
+   context.
+-  Passing ``**kwargs`` to ``Template()`` with no context no longer
+   raises an exception.
+
+0.4.1 (2012-03-25)
+------------------
+
+-  Added support for Python 2.4. [wangtz, jvantuyl]
+
+0.4.0 (2011-01-12)
+------------------
+
+-  Add support for nested contexts (within template and view)
+-  Add support for inverted lists
+-  Decoupled template loading
+
+0.3.1 (2010-05-07)
+------------------
+
+-  Fix package
+
+0.3.0 (2010-05-03)
+------------------
+
+-  View.template\_path can now hold a list of path
+-  Add {{& blah}} as an alias for {{{ blah }}}
+-  Higher Order Sections
+-  Inverted sections
+
+0.2.0 (2010-02-15)
+------------------
+
+-  Bugfix: Methods returning False or None are not rendered
+-  Bugfix: Don't render an empty string when a tag's value is 0.
+   [enaeseth]
+-  Add support for using non-callables as View attributes.
+   [joshthecoder]
+-  Allow using View instances as attributes. [joshthecoder]
+-  Support for Unicode and non-ASCII-encoded bytestring output.
+   [enaeseth]
+-  Template file encoding awareness. [enaeseth]
+
+0.1.1 (2009-11-13)
+------------------
+
+-  Ensure we're dealing with strings, always
+-  Tests can be run by executing the test file directly
+
+0.1.0 (2009-11-12)
+------------------
+
+-  First release
+
+License
+=======
+
+Copyright (C) 2012 Chris Jerdonek. All rights reserved.
+
+Copyright (c) 2009 Chris Wanstrath
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+.. |image0| image:: http://i.creativecommons.org/l/by-sa/3.0/88x31.png
new file mode 100644
--- /dev/null
+++ b/python/pystache/test_pystache.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+# coding: utf-8
+
+"""
+Runs project tests.
+
+This script is a substitute for running--
+
+    python -m pystache.commands.test
+
+It is useful in Python 2.4 because the -m flag does not accept subpackages
+in Python 2.4:
+
+  http://docs.python.org/using/cmdline.html#cmdoption-m
+
+"""
+
+import sys
+
+from pystache.commands import test
+from pystache.tests.main import FROM_SOURCE_OPTION
+
+
+def main(sys_argv=sys.argv):
+    sys.argv.insert(1, FROM_SOURCE_OPTION)
+    test.main()
+
+
+if __name__=='__main__':
+    main()
new file mode 100644
--- /dev/null
+++ b/python/pystache/tox.ini
@@ -0,0 +1,36 @@
+# A tox configuration file to test across multiple Python versions.
+#
+#   http://pypi.python.org/pypi/tox
+#
+[tox]
+# Tox 1.4 drops py24 and adds py33.  In the current version, we want to
+# support 2.4, so we can't simultaneously support 3.3.
+envlist = py24,py25,py26,py27,py27-yaml,py27-noargs,py31,py32,pypy
+
+[testenv]
+# Change the working directory so that we don't import the pystache located
+# in the original location.
+changedir =
+    {envbindir}
+commands =
+    pystache-test {toxinidir}
+
+# Check that the spec tests work with PyYAML.
+[testenv:py27-yaml]
+basepython =
+    python2.7
+deps =
+    PyYAML
+changedir =
+    {envbindir}
+commands =
+    pystache-test {toxinidir}
+
+# Check that pystache-test works from an install with no arguments.
+[testenv:py27-noargs]
+basepython =
+    python2.7
+changedir =
+    {envbindir}
+commands =
+    pystache-test
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/CHANGES
@@ -0,0 +1,147 @@
+
+For a complete Mercurial changelog, see
+'https://bitbucket.org/xi/pyyaml/commits'.
+
+3.11 (2014-03-26)
+-----------------
+
+* Source and binary distributions are rebuilt against the latest
+  versions of Cython and LibYAML.
+
+3.10 (2011-05-30)
+-----------------
+
+* Do not try to build LibYAML bindings on platforms other than CPython
+  (Thank to olt(at)bogosoft(dot)com).
+* Clear cyclic references in the parser and the emitter
+  (Thank to kristjan(at)ccpgames(dot)com).
+* Dropped support for Python 2.3 and 2.4.
+
+3.09 (2009-08-31)
+-----------------
+
+* Fixed an obscure scanner error not reported when there is
+  no line break at the end of the stream (Thank to Ingy).
+* Fixed use of uninitialized memory when emitting anchors with
+  LibYAML bindings (Thank to cegner(at)yahoo-inc(dot)com).
+* Fixed emitting incorrect BOM characters for UTF-16 (Thank to
+  Valentin Nechayev)
+* Fixed the emitter for folded scalars not respecting the preferred
+  line width (Thank to Ingy).
+* Fixed a subtle ordering issue with emitting '%TAG' directives
+  (Thank to Andrey Somov).
+* Fixed performance regression with LibYAML bindings.
+
+
+3.08 (2008-12-31)
+-----------------
+
+* Python 3 support (Thank to Erick Tryzelaar).
+* Use Cython instead of Pyrex to build LibYAML bindings.
+* Refactored support for unicode and byte input/output streams.
+
+
+3.07 (2008-12-29)
+-----------------
+
+* The emitter learned to use an optional indentation indicator
+  for block scalar; thus scalars with leading whitespaces
+  could now be represented in a literal or folded style.
+* The test suite is now included in the source distribution.
+  To run the tests, type 'python setup.py test'.
+* Refactored the test suite: dropped unittest in favor of
+  a custom test appliance.
+* Fixed the path resolver in CDumper.
+* Forced an explicit document end indicator when there is
+  a possibility of parsing ambiguity.
+* More setup.py improvements: the package should be usable
+  when any combination of setuptools, Pyrex and LibYAML
+  is installed.
+* Windows binary packages are built against LibYAML-0.1.2.
+* Minor typos and corrections (Thank to Ingy dot Net
+  and Andrey Somov).
+
+
+3.06 (2008-10-03)
+-----------------
+
+* setup.py checks whether LibYAML is installed and if so, builds
+  and installs LibYAML bindings.  To force or disable installation
+  of LibYAML bindings, use '--with-libyaml' or '--without-libyaml'
+  respectively.
+* The source distribution includes compiled Pyrex sources so
+  building LibYAML bindings no longer requires Pyrex installed.
+* 'yaml.load()' raises an exception if the input stream contains
+  more than one YAML document.
+* Fixed exceptions produced by LibYAML bindings.
+* Fixed a dot '.' character being recognized as !!float.
+* Fixed Python 2.3 compatibility issue in constructing !!timestamp values.
+* Windows binary packages are built against the LibYAML stable branch.
+* Added attributes 'yaml.__version__' and  'yaml.__with_libyaml__'.
+
+
+3.05 (2007-05-13)
+-----------------
+
+* Windows binary packages were built with LibYAML trunk.
+* Fixed a bug that prevent processing a live stream of YAML documents in
+  timely manner (Thanks edward(at)sweetbytes(dot)net).
+* Fixed a bug when the path in add_path_resolver contains boolean values
+  (Thanks jstroud(at)mbi(dot)ucla(dot)edu).
+* Fixed loss of microsecond precision in timestamps
+  (Thanks edemaine(at)mit(dot)edu).
+* Fixed loading an empty YAML stream.
+* Allowed immutable subclasses of YAMLObject.
+* Made the encoding of the unicode->str conversion explicit so that
+  the conversion does not depend on the default Python encoding.
+* Forced emitting float values in a YAML compatible form.
+
+
+3.04 (2006-08-20)
+-----------------
+
+* Include experimental LibYAML bindings.
+* Fully support recursive structures.
+* Sort dictionary keys.  Mapping node values are now represented
+  as lists of pairs instead of dictionaries.  No longer check
+  for duplicate mapping keys as it didn't work correctly anyway.
+* Fix invalid output of single-quoted scalars in cases when a single
+  quote is not escaped when preceeded by whitespaces or line breaks.
+* To make porting easier, rewrite Parser not using generators.
+* Fix handling of unexpected block mapping values.
+* Fix a bug in Representer.represent_object: copy_reg.dispatch_table
+  was not correctly handled.
+* Fix a bug when a block scalar is incorrectly emitted in the simple
+  key context.
+* Hold references to the objects being represented.
+* Make Representer not try to guess !!pairs when a list is represented.
+* Fix timestamp constructing and representing.
+* Fix the 'N' plain scalar being incorrectly recognized as !!bool.
+
+
+3.03 (2006-06-19)
+-----------------
+
+* Fix Python 2.5 compatibility issues.
+* Fix numerous bugs in the float handling.
+* Fix scanning some ill-formed documents.
+* Other minor fixes.
+
+
+3.02 (2006-05-15)
+-----------------
+
+* Fix win32 installer.  Apparently bdist_wininst does not work well
+  under Linux.
+* Fix a bug in add_path_resolver.
+* Add the yaml-highlight example.  Try to run on a color terminal:
+  `python yaml_hl.py <any_document.yaml`.
+
+
+3.01 (2006-05-07)
+-----------------
+
+* Initial release.  The version number reflects the codename
+  of the project (PyYAML 3000) and differenciates it from
+  the abandoned PyYaml module. 
+
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2006 Kirill Simonov
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/PKG-INFO
@@ -0,0 +1,36 @@
+Metadata-Version: 1.1
+Name: PyYAML
+Version: 3.11
+Summary: YAML parser and emitter for Python
+Home-page: http://pyyaml.org/wiki/PyYAML
+Author: Kirill Simonov
+Author-email: xi@resolvent.net
+License: MIT
+Download-URL: http://pyyaml.org/download/pyyaml/PyYAML-3.11.tar.gz
+Description: YAML is a data serialization format designed for human readability
+        and interaction with scripting languages.  PyYAML is a YAML parser
+        and emitter for Python.
+        
+        PyYAML features a complete YAML 1.1 parser, Unicode support, pickle
+        support, capable extension API, and sensible error messages.  PyYAML
+        supports standard YAML tags and provides Python-specific tags that
+        allow to represent an arbitrary Python object.
+        
+        PyYAML is applicable for a broad range of tasks from complex
+        configuration files to object serialization and persistance.
+Platform: Any
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.5
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.0
+Classifier: Programming Language :: Python :: 3.1
+Classifier: Programming Language :: Python :: 3.2
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Classifier: Topic :: Text Processing :: Markup
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/README
@@ -0,0 +1,35 @@
+PyYAML - The next generation YAML parser and emitter for Python.
+
+To install, type 'python setup.py install'.
+
+By default, the setup.py script checks whether LibYAML is installed
+and if so, builds and installs LibYAML bindings.  To skip the check
+and force installation of LibYAML bindings, use the option '--with-libyaml':
+'python setup.py --with-libyaml install'.  To disable the check and
+skip building and installing LibYAML bindings, use '--without-libyaml':
+'python setup.py --without-libyaml install'.
+
+When LibYAML bindings are installed, you may use fast LibYAML-based
+parser and emitter as follows:
+
+    >>> yaml.load(stream, Loader=yaml.CLoader)
+    >>> yaml.dump(data, Dumper=yaml.CDumper)
+
+PyYAML includes a comprehensive test suite.  To run the tests,
+type 'python setup.py test'.
+
+For more information, check the PyYAML homepage:
+'http://pyyaml.org/wiki/PyYAML'.
+
+For PyYAML tutorial and reference, see:
+'http://pyyaml.org/wiki/PyYAMLDocumentation'.
+
+Post your questions and opinions to the YAML-Core mailing list:
+'http://lists.sourceforge.net/lists/listinfo/yaml-core'.
+
+Submit bug reports and feature requests to the PyYAML bug tracker:
+'http://pyyaml.org/newticket?component=pyyaml'.
+
+PyYAML is written by Kirill Simonov <xi@resolvent.net>.  It is released
+under the MIT license. See the file LICENSE for more details.
+
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/examples/pygments-lexer/example.yaml
@@ -0,0 +1,302 @@
+
+#
+# Examples from the Preview section of the YAML specification
+# (http://yaml.org/spec/1.2/#Preview)
+#
+
+# Sequence of scalars
+---
+- Mark McGwire
+- Sammy Sosa
+- Ken Griffey
+
+# Mapping scalars to scalars
+---
+hr:  65    # Home runs
+avg: 0.278 # Batting average
+rbi: 147   # Runs Batted In
+
+# Mapping scalars to sequences
+---
+american:
+  - Boston Red Sox
+  - Detroit Tigers
+  - New York Yankees
+national:
+  - New York Mets
+  - Chicago Cubs
+  - Atlanta Braves
+
+# Sequence of mappings
+---
+-
+  name: Mark McGwire
+  hr:   65
+  avg:  0.278
+-
+  name: Sammy Sosa
+  hr:   63
+  avg:  0.288
+
+# Sequence of sequences
+---
+- [name        , hr, avg  ]
+- [Mark McGwire, 65, 0.278]
+- [Sammy Sosa  , 63, 0.288]
+
+# Mapping of mappings
+---
+Mark McGwire: {hr: 65, avg: 0.278}
+Sammy Sosa: {
+    hr: 63,
+    avg: 0.288
+  }
+
+# Two documents in a stream
+--- # Ranking of 1998 home runs
+- Mark McGwire
+- Sammy Sosa
+- Ken Griffey
+--- # Team ranking
+- Chicago Cubs
+- St Louis Cardinals
+
+# Documents with the end indicator
+---
+time: 20:03:20
+player: Sammy Sosa
+action: strike (miss)
+...
+---
+time: 20:03:47
+player: Sammy Sosa
+action: grand slam
+...
+
+# Comments
+---
+hr: # 1998 hr ranking
+  - Mark McGwire
+  - Sammy Sosa
+rbi:
+  # 1998 rbi ranking
+  - Sammy Sosa
+  - Ken Griffey
+
+# Anchors and aliases
+---
+hr:
+  - Mark McGwire
+  # Following node labeled SS
+  - &SS Sammy Sosa
+rbi:
+  - *SS # Subsequent occurrence
+  - Ken Griffey
+
+# Mapping between sequences
+---
+? - Detroit Tigers
+  - Chicago cubs
+:
+  - 2001-07-23
+? [ New York Yankees,
+    Atlanta Braves ]
+: [ 2001-07-02, 2001-08-12,
+    2001-08-14 ]
+
+# Inline nested mapping
+---
+# products purchased
+- item    : Super Hoop
+  quantity: 1
+- item    : Basketball
+  quantity: 4
+- item    : Big Shoes
+  quantity: 1
+
+# Literal scalars
+--- | # ASCII art
+  \//||\/||
+  // ||  ||__
+
+# Folded scalars
+--- >
+  Mark McGwire's
+  year was crippled
+  by a knee injury.
+
+# Preserved indented block in a folded scalar
+---
+>
+ Sammy Sosa completed another
+ fine season with great stats.
+
+   63 Home Runs
+   0.288 Batting Average
+
+ What a year!
+
+# Indentation determines scope
+---
+name: Mark McGwire
+accomplishment: >
+  Mark set a major league
+  home run record in 1998.
+stats: |
+  65 Home Runs
+  0.278 Batting Average
+
+# Quoted scalars
+---
+unicode: "Sosa did fine.\u263A"
+control: "\b1998\t1999\t2000\n"
+hex esc: "\x0d\x0a is \r\n"
+single: '"Howdy!" he cried.'
+quoted: ' # not a ''comment''.'
+tie-fighter: '|\-*-/|'
+
+# Multi-line flow scalars
+---
+plain:
+  This unquoted scalar
+  spans many lines.
+quoted: "So does this
+  quoted scalar.\n"
+
+# Integers
+---
+canonical: 12345
+decimal: +12_345
+sexagesimal: 3:25:45
+octal: 014
+hexadecimal: 0xC
+
+# Floating point
+---
+canonical: 1.23015e+3
+exponential: 12.3015e+02
+sexagesimal: 20:30.15
+fixed: 1_230.15
+negative infinity: -.inf
+not a number: .NaN
+
+# Miscellaneous
+---
+null: ~
+true: boolean
+false: boolean
+string: '12345'
+
+# Timestamps
+---
+canonical: 2001-12-15T02:59:43.1Z
+iso8601: 2001-12-14t21:59:43.10-05:00
+spaced: 2001-12-14 21:59:43.10 -5
+date: 2002-12-14
+
+# Various explicit tags
+---
+not-date: !!str 2002-04-28
+picture: !!binary |
+ R0lGODlhDAAMAIQAAP//9/X
+ 17unp5WZmZgAAAOfn515eXv
+ Pz7Y6OjuDg4J+fn5OTk6enp
+ 56enmleECcgggoBADs=
+application specific tag: !something |
+ The semantics of the tag
+ above may be different for
+ different documents.
+
+# Global tags
+%TAG ! tag:clarkevans.com,2002:
+--- !shape
+  # Use the ! handle for presenting
+  # tag:clarkevans.com,2002:circle
+- !circle
+  center: &ORIGIN {x: 73, y: 129}
+  radius: 7
+- !line
+  start: *ORIGIN
+  finish: { x: 89, y: 102 }
+- !label
+  start: *ORIGIN
+  color: 0xFFEEBB
+  text: Pretty vector drawing.
+
+# Unordered sets
+--- !!set
+# sets are represented as a
+# mapping where each key is
+# associated with the empty string
+? Mark McGwire
+? Sammy Sosa
+? Ken Griff
+
+# Ordered mappings
+--- !!omap
+# ordered maps are represented as
+# a sequence of mappings, with
+# each mapping having one key
+- Mark McGwire: 65
+- Sammy Sosa: 63
+- Ken Griffy: 58
+
+# Full length example
+--- !<tag:clarkevans.com,2002:invoice>
+invoice: 34843
+date   : 2001-01-23
+bill-to: &id001
+    given  : Chris
+    family : Dumars
+    address:
+        lines: |
+            458 Walkman Dr.
+            Suite #292
+        city    : Royal Oak
+        state   : MI
+        postal  : 48046
+ship-to: *id001
+product:
+    - sku         : BL394D
+      quantity    : 4
+      description : Basketball
+      price       : 450.00
+    - sku         : BL4438H
+      quantity    : 1
+      description : Super Hoop
+      price       : 2392.00
+tax  : 251.42
+total: 4443.52
+comments:
+    Late afternoon is best.
+    Backup contact is Nancy
+    Billsmer @ 338-4338.
+
+# Another full-length example
+---
+Time: 2001-11-23 15:01:42 -5
+User: ed
+Warning:
+  This is an error message
+  for the log file
+---
+Time: 2001-11-23 15:02:31 -5
+User: ed
+Warning:
+  A slightly different error
+  message.
+---
+Date: 2001-11-23 15:03:17 -5
+User: ed
+Fatal:
+  Unknown variable "bar"
+Stack:
+  - file: TopClass.py
+    line: 23
+    code: |
+      x = MoreObject("345\n")
+  - file: MoreClass.py
+    line: 58
+    code: |-
+      foo = bar
+
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/examples/pygments-lexer/yaml.py
@@ -0,0 +1,431 @@
+
+"""
+yaml.py
+
+Lexer for YAML, a human-friendly data serialization language
+(http://yaml.org/).
+
+Written by Kirill Simonov <xi@resolvent.net>.
+
+License: Whatever suitable for inclusion into the Pygments package.
+"""
+
+from pygments.lexer import  \
+        ExtendedRegexLexer, LexerContext, include, bygroups
+from pygments.token import  \
+        Text, Comment, Punctuation, Name, Literal
+
+__all__ = ['YAMLLexer']
+
+
+class YAMLLexerContext(LexerContext):
+    """Indentation context for the YAML lexer."""
+
+    def __init__(self, *args, **kwds):
+        super(YAMLLexerContext, self).__init__(*args, **kwds)
+        self.indent_stack = []
+        self.indent = -1
+        self.next_indent = 0
+        self.block_scalar_indent = None
+
+
+def something(TokenClass):
+    """Do not produce empty tokens."""
+    def callback(lexer, match, context):
+        text = match.group()
+        if not text:
+            return
+        yield match.start(), TokenClass, text
+        context.pos = match.end()
+    return callback
+
+def reset_indent(TokenClass):
+    """Reset the indentation levels."""
+    def callback(lexer, match, context):
+        text = match.group()
+        context.indent_stack = []
+        context.indent = -1
+        context.next_indent = 0
+        context.block_scalar_indent = None
+        yield match.start(), TokenClass, text
+        context.pos = match.end()
+    return callback
+
+def save_indent(TokenClass, start=False):
+    """Save a possible indentation level."""
+    def callback(lexer, match, context):
+        text = match.group()
+        extra = ''
+        if start:
+            context.next_indent = len(text)
+            if context.next_indent < context.indent:
+                while context.next_indent < context.indent:
+                    context.indent = context.indent_stack.pop()
+                if context.next_indent > context.indent:
+                    extra = text[context.indent:]
+                    text = text[:context.indent]
+        else:
+            context.next_indent += len(text)
+        if text:
+            yield match.start(), TokenClass, text
+        if extra:
+            yield match.start()+len(text), TokenClass.Error, extra
+        context.pos = match.end()
+    return callback
+
+def set_indent(TokenClass, implicit=False):
+    """Set the previously saved indentation level."""
+    def callback(lexer, match, context):
+        text = match.group()
+        if context.indent < context.next_indent:
+            context.indent_stack.append(context.indent)
+            context.indent = context.next_indent
+        if not implicit:
+            context.next_indent += len(text)
+        yield match.start(), TokenClass, text
+        context.pos = match.end()
+    return callback
+
+def set_block_scalar_indent(TokenClass):
+    """Set an explicit indentation level for a block scalar."""
+    def callback(lexer, match, context):
+        text = match.group()
+        context.block_scalar_indent = None
+        if not text:
+            return
+        increment = match.group(1)
+        if increment:
+            current_indent = max(context.indent, 0)
+            increment = int(increment)
+            context.block_scalar_indent = current_indent + increment
+        if text:
+            yield match.start(), TokenClass, text
+            context.pos = match.end()
+    return callback
+
+def parse_block_scalar_empty_line(IndentTokenClass, ContentTokenClass):
+    """Process an empty line in a block scalar."""
+    def callback(lexer, match, context):
+        text = match.group()
+        if (context.block_scalar_indent is None or
+                len(text) <= context.block_scalar_indent):
+            if text:
+                yield match.start(), IndentTokenClass, text
+        else:
+            indentation = text[:context.block_scalar_indent]
+            content = text[context.block_scalar_indent:]
+            yield match.start(), IndentTokenClass, indentation
+            yield (match.start()+context.block_scalar_indent,
+                    ContentTokenClass, content)
+        context.pos = match.end()
+    return callback
+
+def parse_block_scalar_indent(TokenClass):
+    """Process indentation spaces in a block scalar."""
+    def callback(lexer, match, context):
+        text = match.group()
+        if context.block_scalar_indent is None:
+            if len(text) <= max(context.indent, 0):
+                context.stack.pop()
+                context.stack.pop()
+                return
+            context.block_scalar_indent = len(text)
+        else:
+            if len(text) < context.block_scalar_indent:
+                context.stack.pop()
+                context.stack.pop()
+                return
+        if text:
+            yield match.start(), TokenClass, text
+            context.pos = match.end()
+    return callback
+
+def parse_plain_scalar_indent(TokenClass):
+    """Process indentation spaces in a plain scalar."""
+    def callback(lexer, match, context):
+        text = match.group()
+        if len(text) <= context.indent:
+            context.stack.pop()
+            context.stack.pop()
+            return
+        if text:
+            yield match.start(), TokenClass, text
+            context.pos = match.end()
+    return callback
+
+
+class YAMLLexer(ExtendedRegexLexer):
+    """Lexer for the YAML language."""
+
+    name = 'YAML'
+    aliases = ['yaml']
+    filenames = ['*.yaml', '*.yml']
+    mimetypes = ['text/x-yaml']
+
+    tokens = {
+
+        # the root rules
+        'root': [
+            # ignored whitespaces
+            (r'[ ]+(?=#|$)', Text.Blank),
+            # line breaks
+            (r'\n+', Text.Break),
+            # a comment
+            (r'#[^\n]*', Comment.Single),
+            # the '%YAML' directive
+            (r'^%YAML(?=[ ]|$)', reset_indent(Name.Directive),
+                'yaml-directive'),
+            # the %TAG directive
+            (r'^%TAG(?=[ ]|$)', reset_indent(Name.Directive),
+                'tag-directive'),
+            # document start and document end indicators
+            (r'^(?:---|\.\.\.)(?=[ ]|$)',
+                reset_indent(Punctuation.Document), 'block-line'),
+            # indentation spaces
+            (r'[ ]*(?![ \t\n\r\f\v]|$)',
+                save_indent(Text.Indent, start=True),
+                ('block-line', 'indentation')),
+        ],
+
+        # trailing whitespaces after directives or a block scalar indicator
+        'ignored-line': [
+            # ignored whitespaces
+            (r'[ ]+(?=#|$)', Text.Blank),
+            # a comment
+            (r'#[^\n]*', Comment.Single),
+            # line break
+            (r'\n', Text.Break, '#pop:2'),
+        ],
+
+        # the %YAML directive
+        'yaml-directive': [
+            # the version number
+            (r'([ ]+)([0-9]+\.[0-9]+)',
+                bygroups(Text.Blank, Literal.Version), 'ignored-line'),
+        ],
+
+        # the %YAG directive
+        'tag-directive': [
+            # a tag handle and the corresponding prefix
+            (r'([ ]+)(!|![0-9A-Za-z_-]*!)'
+                r'([ ]+)(!|!?[0-9A-Za-z;/?:@&=+$,_.!~*\'()\[\]%-]+)',
+                bygroups(Text.Blank, Name.Type, Text.Blank, Name.Type),
+                'ignored-line'),
+        ],
+
+        # block scalar indicators and indentation spaces
+        'indentation': [
+            # trailing whitespaces are ignored
+            (r'[ ]*$', something(Text.Blank), '#pop:2'),
+            # whitespaces preceeding block collection indicators
+            (r'[ ]+(?=[?:-](?:[ ]|$))', save_indent(Text.Indent)),
+            # block collection indicators
+            (r'[?:-](?=[ ]|$)', set_indent(Punctuation.Indicator)),
+            # the beginning a block line
+            (r'[ ]*', save_indent(Text.Indent), '#pop'),
+        ],
+
+        # an indented line in the block context
+        'block-line': [
+            # the line end
+            (r'[ ]*(?=#|$)', something(Text.Blank), '#pop'),
+            # whitespaces separating tokens
+            (r'[ ]+', Text.Blank),
+            # tags, anchors and aliases,
+            include('descriptors'),
+            # block collections and scalars
+            include('block-nodes'),
+            # flow collections and quoted scalars
+            include('flow-nodes'),
+            # a plain scalar
+            (r'(?=[^ \t\n\r\f\v?:,\[\]{}#&*!|>\'"%@`-]|[?:-][^ \t\n\r\f\v])',
+                something(Literal.Scalar.Plain),
+                'plain-scalar-in-block-context'),
+        ],
+
+        # tags, anchors, aliases
+        'descriptors' : [
+            # a full-form tag
+            (r'!<[0-9A-Za-z;/?:@&=+$,_.!~*\'()\[\]%-]+>', Name.Type),
+            # a tag in the form '!', '!suffix' or '!handle!suffix'
+            (r'!(?:[0-9A-Za-z_-]+)?'
+                r'(?:![0-9A-Za-z;/?:@&=+$,_.!~*\'()\[\]%-]+)?', Name.Type),
+            # an anchor
+            (r'&[0-9A-Za-z_-]+', Name.Anchor),
+            # an alias
+            (r'\*[0-9A-Za-z_-]+', Name.Alias),
+        ],
+
+        # block collections and scalars
+        'block-nodes': [
+            # implicit key
+            (r':(?=[ ]|$)', set_indent(Punctuation.Indicator, implicit=True)),
+            # literal and folded scalars
+            (r'[|>]', Punctuation.Indicator,
+                ('block-scalar-content', 'block-scalar-header')),
+        ],
+
+        # flow collections and quoted scalars
+        'flow-nodes': [
+            # a flow sequence
+            (r'\[', Punctuation.Indicator, 'flow-sequence'),
+            # a flow mapping
+            (r'\{', Punctuation.Indicator, 'flow-mapping'),
+            # a single-quoted scalar
+            (r'\'', Literal.Scalar.Flow.Quote, 'single-quoted-scalar'),
+            # a double-quoted scalar
+            (r'\"', Literal.Scalar.Flow.Quote, 'double-quoted-scalar'),
+        ],
+
+        # the content of a flow collection
+        'flow-collection': [
+            # whitespaces
+            (r'[ ]+', Text.Blank),
+            # line breaks
+            (r'\n+', Text.Break),
+            # a comment
+            (r'#[^\n]*', Comment.Single),
+            # simple indicators
+            (r'[?:,]', Punctuation.Indicator),
+            # tags, anchors and aliases
+            include('descriptors'),
+            # nested collections and quoted scalars
+            include('flow-nodes'),
+            # a plain scalar
+            (r'(?=[^ \t\n\r\f\v?:,\[\]{}#&*!|>\'"%@`])',
+                something(Literal.Scalar.Plain),
+                'plain-scalar-in-flow-context'),
+        ],
+
+        # a flow sequence indicated by '[' and ']'
+        'flow-sequence': [
+            # include flow collection rules
+            include('flow-collection'),
+            # the closing indicator
+            (r'\]', Punctuation.Indicator, '#pop'),
+        ],
+
+        # a flow mapping indicated by '{' and '}'
+        'flow-mapping': [
+            # include flow collection rules
+            include('flow-collection'),
+            # the closing indicator
+            (r'\}', Punctuation.Indicator, '#pop'),
+        ],
+
+        # block scalar lines
+        'block-scalar-content': [
+            # line break
+            (r'\n', Text.Break),
+            # empty line
+            (r'^[ ]+$',
+                parse_block_scalar_empty_line(Text.Indent,
+                    Literal.Scalar.Block)),
+            # indentation spaces (we may leave the state here)
+            (r'^[ ]*', parse_block_scalar_indent(Text.Indent)),
+            # line content
+            (r'[^\n\r\f\v]+', Literal.Scalar.Block),
+        ],
+
+        # the content of a literal or folded scalar
+        'block-scalar-header': [
+            # indentation indicator followed by chomping flag
+            (r'([1-9])?[+-]?(?=[ ]|$)',
+                set_block_scalar_indent(Punctuation.Indicator),
+                'ignored-line'),
+            # chomping flag followed by indentation indicator
+            (r'[+-]?([1-9])?(?=[ ]|$)',
+                set_block_scalar_indent(Punctuation.Indicator),
+                'ignored-line'),
+        ],
+
+        # ignored and regular whitespaces in quoted scalars
+        'quoted-scalar-whitespaces': [
+            # leading and trailing whitespaces are ignored
+            (r'^[ ]+|[ ]+$', Text.Blank),
+            # line breaks are ignored
+            (r'\n+', Text.Break),
+            # other whitespaces are a part of the value
+            (r'[ ]+', Literal.Scalar.Flow),
+        ],
+
+        # single-quoted scalars
+        'single-quoted-scalar': [
+            # include whitespace and line break rules
+            include('quoted-scalar-whitespaces'),
+            # escaping of the quote character
+            (r'\'\'', Literal.Scalar.Flow.Escape),
+            # regular non-whitespace characters
+            (r'[^ \t\n\r\f\v\']+', Literal.Scalar.Flow),
+            # the closing quote
+            (r'\'', Literal.Scalar.Flow.Quote, '#pop'),
+        ],
+
+        # double-quoted scalars
+        'double-quoted-scalar': [
+            # include whitespace and line break rules
+            include('quoted-scalar-whitespaces'),
+            # escaping of special characters
+            (r'\\[0abt\tn\nvfre "\\N_LP]', Literal.Scalar.Flow.Escape),
+            # escape codes
+            (r'\\(?:x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',
+                Literal.Scalar.Flow.Escape),
+            # regular non-whitespace characters
+            (r'[^ \t\n\r\f\v\"\\]+', Literal.Scalar.Flow),
+            # the closing quote
+            (r'"', Literal.Scalar.Flow.Quote, '#pop'),
+        ],
+
+        # the beginning of a new line while scanning a plain scalar
+        'plain-scalar-in-block-context-new-line': [
+            # empty lines
+            (r'^[ ]+$', Text.Blank),
+            # line breaks
+            (r'\n+', Text.Break),
+            # document start and document end indicators
+            (r'^(?=---|\.\.\.)', something(Punctuation.Document), '#pop:3'),
+            # indentation spaces (we may leave the block line state here)
+            (r'^[ ]*', parse_plain_scalar_indent(Text.Indent), '#pop'),
+        ],
+
+        # a plain scalar in the block context
+        'plain-scalar-in-block-context': [
+            # the scalar ends with the ':' indicator
+            (r'[ ]*(?=:[ ]|:$)', something(Text.Blank), '#pop'),
+            # the scalar ends with whitespaces followed by a comment
+            (r'[ ]+(?=#)', Text.Blank, '#pop'),
+            # trailing whitespaces are ignored
+            (r'[ ]+$', Text.Blank),
+            # line breaks are ignored
+            (r'\n+', Text.Break, 'plain-scalar-in-block-context-new-line'),
+            # other whitespaces are a part of the value
+            (r'[ ]+', Literal.Scalar.Plain),
+            # regular non-whitespace characters
+            (r'(?::(?![ \t\n\r\f\v])|[^ \t\n\r\f\v:])+',
+                Literal.Scalar.Plain),
+        ],
+
+        # a plain scalar is the flow context
+        'plain-scalar-in-flow-context': [
+            # the scalar ends with an indicator character
+            (r'[ ]*(?=[,:?\[\]{}])', something(Text.Blank), '#pop'),
+            # the scalar ends with a comment
+            (r'[ ]+(?=#)', Text.Blank, '#pop'),
+            # leading and trailing whitespaces are ignored
+            (r'^[ ]+|[ ]+$', Text.Blank),
+            # line breaks are ignored
+            (r'\n+', Text.Break),
+            # other whitespaces are a part of the value
+            (r'[ ]+', Literal.Scalar.Plain),
+            # regular non-whitespace characters
+            (r'[^ \t\n\r\f\v,:?\[\]{}]+', Literal.Scalar.Plain),
+        ],
+
+    }
+
+    def get_tokens_unprocessed(self, text=None, context=None):
+        if context is None:
+            context = YAMLLexerContext(text, 0)
+        return super(YAMLLexer, self).get_tokens_unprocessed(text, context)
+
+
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/examples/yaml-highlight/yaml_hl.cfg
@@ -0,0 +1,115 @@
+%YAML 1.1
+---
+
+ascii:
+
+    header: "\e[0;1;30;40m"
+
+    footer: "\e[0m"
+
+    tokens:
+        stream-start:
+        stream-end:
+        directive:              { start: "\e[35m", end: "\e[0;1;30;40m" }
+        document-start:         { start: "\e[35m", end: "\e[0;1;30;40m" }
+        document-end:           { start: "\e[35m", end: "\e[0;1;30;40m" }
+        block-sequence-start:
+        block-mapping-start:
+        block-end:
+        flow-sequence-start:    { start: "\e[33m", end: "\e[0;1;30;40m" }
+        flow-mapping-start:     { start: "\e[33m", end: "\e[0;1;30;40m" }
+        flow-sequence-end:      { start: "\e[33m", end: "\e[0;1;30;40m" }
+        flow-mapping-end:       { start: "\e[33m", end: "\e[0;1;30;40m" }
+        key:                    { start: "\e[33m", end: "\e[0;1;30;40m" }
+        value:                  { start: "\e[33m", end: "\e[0;1;30;40m" }
+        block-entry:            { start: "\e[33m", end: "\e[0;1;30;40m" }
+        flow-entry:             { start: "\e[33m", end: "\e[0;1;30;40m" }
+        alias:                  { start: "\e[32m", end: "\e[0;1;30;40m" }
+        anchor:                 { start: "\e[32m", end: "\e[0;1;30;40m" }
+        tag:                    { start: "\e[32m", end: "\e[0;1;30;40m" }
+        scalar:                 { start: "\e[36m", end: "\e[0;1;30;40m" }
+
+    replaces:
+        - "\r\n":   "\n"
+        - "\r":     "\n"
+        - "\n":     "\n"
+        - "\x85":   "\n"
+        - "\u2028": "\n"
+        - "\u2029": "\n"
+
+html: &html
+
+    tokens:
+        stream-start:
+        stream-end:
+        directive:              { start: <code class="directive_token">, end: </code> }
+        document-start:         { start: <code class="document_start_token">, end: </code> }
+        document-end:           { start: <code class="document_end_token">, end: </code> }
+        block-sequence-start:
+        block-mapping-start:
+        block-end:
+        flow-sequence-start:    { start: <code class="delimiter_token">, end: </code> }
+        flow-mapping-start:     { start: <code class="delimiter_token">, end: </code> }
+        flow-sequence-end:      { start: <code class="delimiter_token">, end: </code> }
+        flow-mapping-end:       { start: <code class="delimiter_token">, end: </code> }
+        key:                    { start: <code class="delimiter_token">, end: </code> }
+        value:                  { start: <code class="delimiter_token">, end: </code> }
+        block-entry:            { start: <code class="delimiter_token">, end: </code> }
+        flow-entry:             { start: <code class="delimiter_token">, end: </code> }
+        alias:                  { start: <code class="anchor_token">, end: </code> }
+        anchor:                 { start: <code class="anchor_token">, end: </code> }
+        tag:                    { start: <code class="tag_token">, end: </code> }
+        scalar:                 { start: <code class="scalar_token">, end: </code> }
+
+    events:
+        stream-start:   { start: <pre class="yaml_stream"> }
+        stream-end:     { end: </pre> }
+        document-start: { start: <span class="document"> }
+        document-end:   { end: </span> }
+        sequence-start: { start: <span class="sequence"> }
+        sequence-end:   { end: </span> }
+        mapping-start:  { start: <span class="mapping"> }
+        mapping-end:    { end: </span> }
+        scalar:         { start: <span class="scalar">, end: </span> }
+
+    replaces:
+        - "\r\n":   "\n"
+        - "\r":     "\n"
+        - "\n":     "\n"
+        - "\x85":   "\n"
+        - "\u2028": "\n"
+        - "\u2029": "\n"
+        - "&":      "&amp;"
+        - "<":      "&lt;"
+        - ">":      "&gt;"
+
+html-page:
+
+    header: |
+        <html>
+        <head>
+        <title>A YAML stream</title>
+        <style type="text/css">
+            .document { background: #FFF }
+            .sequence { background: #EEF }
+            .mapping { background: #EFE }
+            .scalar { background: #FEE }
+            .directive_token { color: #C0C }
+            .document_start_token { color: #C0C; font-weight: bold }
+            .document_end_token { color: #C0C; font-weight: bold }
+            .delimiter_token { color: #600; font-weight: bold }
+            .anchor_token { color: #090 }
+            .tag_token { color: #090 }
+            .scalar_token { color: #000 }
+            .yaml_stream { color: #999 }
+        </style>
+        <body>
+
+    footer: |
+        </body>
+        </html>
+
+    <<: *html
+
+
+# vim: ft=yaml
new file mode 100755
--- /dev/null
+++ b/python/pyyaml/examples/yaml-highlight/yaml_hl.py
@@ -0,0 +1,114 @@
+#!/usr/bin/python
+
+import yaml, codecs, sys, os.path, optparse
+
+class Style:
+
+    def __init__(self, header=None, footer=None,
+            tokens=None, events=None, replaces=None):
+        self.header = header
+        self.footer = footer
+        self.replaces = replaces
+        self.substitutions = {}
+        for domain, Class in [(tokens, 'Token'), (events, 'Event')]:
+            if not domain:
+                continue
+            for key in domain:
+                name = ''.join([part.capitalize() for part in key.split('-')])
+                cls = getattr(yaml, '%s%s' % (name, Class))
+                value = domain[key]
+                if not value:
+                    continue
+                start = value.get('start')
+                end = value.get('end')
+                if start:
+                    self.substitutions[cls, -1] = start
+                if end:
+                    self.substitutions[cls, +1] = end
+
+    def __setstate__(self, state):
+        self.__init__(**state)
+
+yaml.add_path_resolver(u'tag:yaml.org,2002:python/object:__main__.Style',
+        [None], dict)
+yaml.add_path_resolver(u'tag:yaml.org,2002:pairs',
+        [None, u'replaces'], list)
+
+class YAMLHighlight:
+
+    def __init__(self, options):
+        config = yaml.load(file(options.config, 'rb').read())
+        self.style = config[options.style]
+        if options.input:
+            self.input = file(options.input, 'rb')
+        else:
+            self.input = sys.stdin
+        if options.output:
+            self.output = file(options.output, 'wb')
+        else:
+            self.output = sys.stdout
+
+    def highlight(self):
+        input = self.input.read()
+        if input.startswith(codecs.BOM_UTF16_LE):
+            input = unicode(input, 'utf-16-le')
+        elif input.startswith(codecs.BOM_UTF16_BE):
+            input = unicode(input, 'utf-16-be')
+        else:
+            input = unicode(input, 'utf-8')
+        substitutions = self.style.substitutions
+        tokens = yaml.scan(input)
+        events = yaml.parse(input)
+        markers = []
+        number = 0
+        for token in tokens:
+            number += 1
+            if token.start_mark.index != token.end_mark.index:
+                cls = token.__class__
+                if (cls, -1) in substitutions:
+                    markers.append([token.start_mark.index, +2, number, substitutions[cls, -1]])
+                if (cls, +1) in substitutions:
+                    markers.append([token.end_mark.index, -2, number, substitutions[cls, +1]])
+        number = 0
+        for event in events:
+            number += 1
+            cls = event.__class__
+            if (cls, -1) in substitutions:
+                markers.append([event.start_mark.index, +1, number, substitutions[cls, -1]])
+            if (cls, +1) in substitutions:
+                markers.append([event.end_mark.index, -1, number, substitutions[cls, +1]])
+        markers.sort()
+        markers.reverse()
+        chunks = []
+        position = len(input)
+        for index, weight1, weight2, substitution in markers:
+            if index < position:
+                chunk = input[index:position]
+                for substring, replacement in self.style.replaces:
+                    chunk = chunk.replace(substring, replacement)
+                chunks.append(chunk)
+                position = index
+            chunks.append(substitution)
+        chunks.reverse()
+        result = u''.join(chunks)
+        if self.style.header:
+            self.output.write(self.style.header)
+        self.output.write(result.encode('utf-8'))
+        if self.style.footer:
+            self.output.write(self.style.footer)
+
+if __name__ == '__main__':
+    parser = optparse.OptionParser()
+    parser.add_option('-s', '--style', dest='style', default='ascii',
+            help="specify the highlighting style", metavar='STYLE')
+    parser.add_option('-c', '--config', dest='config',
+            default=os.path.join(os.path.dirname(sys.argv[0]), 'yaml_hl.cfg'),
+            help="set an alternative configuration file", metavar='CONFIG')
+    parser.add_option('-i', '--input', dest='input', default=None,
+            help="set the input file (default: stdin)", metavar='FILE')
+    parser.add_option('-o', '--output', dest='output', default=None,
+            help="set the output file (default: stdout)", metavar='FILE')
+    (options, args) = parser.parse_args()
+    hl = YAMLHighlight(options)
+    hl.highlight()
+
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/ext/_yaml.c
@@ -0,0 +1,22190 @@
+/* Generated by Cython 0.20.1 on Wed Mar 26 13:55:16 2014 */
+
+#define PY_SSIZE_T_CLEAN
+#ifndef CYTHON_USE_PYLONG_INTERNALS
+#ifdef PYLONG_BITS_IN_DIGIT
+#define CYTHON_USE_PYLONG_INTERNALS 0
+#else
+#include "pyconfig.h"
+#ifdef PYLONG_BITS_IN_DIGIT
+#define CYTHON_USE_PYLONG_INTERNALS 1
+#else
+#define CYTHON_USE_PYLONG_INTERNALS 0
+#endif
+#endif
+#endif
+#include "Python.h"
+#ifndef Py_PYTHON_H
+    #error Python headers needed to compile C extensions, please install development version of Python.
+#elif PY_VERSION_HEX < 0x02040000
+    #error Cython requires Python 2.4+.
+#else
+#define CYTHON_ABI "0_20_1"
+#include <stddef.h> /* For offsetof */
+#ifndef offsetof
+#define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
+#endif
+#if !defined(WIN32) && !defined(MS_WINDOWS)
+  #ifndef __stdcall
+    #define __stdcall
+  #endif
+  #ifndef __cdecl
+    #define __cdecl
+  #endif
+  #ifndef __fastcall
+    #define __fastcall
+  #endif
+#endif
+#ifndef DL_IMPORT
+  #define DL_IMPORT(t) t
+#endif
+#ifndef DL_EXPORT
+  #define DL_EXPORT(t) t
+#endif
+#ifndef PY_LONG_LONG
+  #define PY_LONG_LONG LONG_LONG
+#endif
+#ifndef Py_HUGE_VAL
+  #define Py_HUGE_VAL HUGE_VAL
+#endif
+#ifdef PYPY_VERSION
+#define CYTHON_COMPILING_IN_PYPY 1
+#define CYTHON_COMPILING_IN_CPYTHON 0
+#else
+#define CYTHON_COMPILING_IN_PYPY 0
+#define CYTHON_COMPILING_IN_CPYTHON 1
+#endif
+#if CYTHON_COMPILING_IN_PYPY
+#define Py_OptimizeFlag 0
+#endif
+#if PY_VERSION_HEX < 0x02050000
+  typedef int Py_ssize_t;
+  #define PY_SSIZE_T_MAX INT_MAX
+  #define PY_SSIZE_T_MIN INT_MIN
+  #define PY_FORMAT_SIZE_T ""
+  #define CYTHON_FORMAT_SSIZE_T ""
+  #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
+  #define PyInt_AsSsize_t(o)   __Pyx_PyInt_As_int(o)
+  #define PyNumber_Index(o)    ((PyNumber_Check(o) && !PyFloat_Check(o)) ? PyNumber_Int(o) : \
+                                (PyErr_Format(PyExc_TypeError, \
+                                              "expected index value, got %.200s", Py_TYPE(o)->tp_name), \
+                                 (PyObject*)0))
+  #define __Pyx_PyIndex_Check(o) (PyNumber_Check(o) && !PyFloat_Check(o) && \
+                                  !PyComplex_Check(o))
+  #define PyIndex_Check __Pyx_PyIndex_Check
+  #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message)
+  #define __PYX_BUILD_PY_SSIZE_T "i"
+#else
+  #define __PYX_BUILD_PY_SSIZE_T "n"
+  #define CYTHON_FORMAT_SSIZE_T "z"
+  #define __Pyx_PyIndex_Check PyIndex_Check
+#endif
+#if PY_VERSION_HEX < 0x02060000
+  #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
+  #define Py_TYPE(ob)   (((PyObject*)(ob))->ob_type)
+  #define Py_SIZE(ob)   (((PyVarObject*)(ob))->ob_size)
+  #define PyVarObject_HEAD_INIT(type, size) \
+          PyObject_HEAD_INIT(type) size,
+  #define PyType_Modified(t)
+  typedef struct {
+     void *buf;
+     PyObject *obj;
+     Py_ssize_t len;
+     Py_ssize_t itemsize;
+     int readonly;
+     int ndim;
+     char *format;
+     Py_ssize_t *shape;
+     Py_ssize_t *strides;
+     Py_ssize_t *suboffsets;
+     void *internal;
+  } Py_buffer;
+  #define PyBUF_SIMPLE 0
+  #define PyBUF_WRITABLE 0x0001
+  #define PyBUF_FORMAT 0x0004
+  #define PyBUF_ND 0x0008
+  #define PyBUF_STRIDES (0x0010 | PyBUF_ND)
+  #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
+  #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
+  #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
+  #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
+  #define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_FORMAT | PyBUF_WRITABLE)
+  #define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_FORMAT | PyBUF_WRITABLE)
+  typedef int (*getbufferproc)(PyObject *, Py_buffer *, int);
+  typedef void (*releasebufferproc)(PyObject *, Py_buffer *);
+#endif
+#if PY_MAJOR_VERSION < 3
+  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
+  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \
+          PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
+  #define __Pyx_DefaultClassType PyClass_Type
+#else
+  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
+  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \
+          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
+  #define __Pyx_DefaultClassType PyType_Type
+#endif
+#if PY_VERSION_HEX < 0x02060000
+  #define PyUnicode_FromString(s) PyUnicode_Decode(s, strlen(s), "UTF-8", "strict")
+#endif
+#if PY_MAJOR_VERSION >= 3
+  #define Py_TPFLAGS_CHECKTYPES 0
+  #define Py_TPFLAGS_HAVE_INDEX 0
+#endif
+#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
+  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
+#endif
+#if PY_VERSION_HEX < 0x02060000
+  #define Py_TPFLAGS_HAVE_VERSION_TAG 0
+#endif
+#if PY_VERSION_HEX < 0x02060000 && !defined(Py_TPFLAGS_IS_ABSTRACT)
+  #define Py_TPFLAGS_IS_ABSTRACT 0
+#endif
+#if PY_VERSION_HEX < 0x030400a1 && !defined(Py_TPFLAGS_HAVE_FINALIZE)
+  #define Py_TPFLAGS_HAVE_FINALIZE 0
+#endif
+#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
+  #define CYTHON_PEP393_ENABLED 1
+  #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ? \
+                                              0 : _PyUnicode_Ready((PyObject *)(op)))
+  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
+  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
+  #define __Pyx_PyUnicode_KIND(u)         PyUnicode_KIND(u)
+  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
+  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
+#else
+  #define CYTHON_PEP393_ENABLED 0
+  #define __Pyx_PyUnicode_READY(op)       (0)
+  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
+  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
+  #define __Pyx_PyUnicode_KIND(u)         (sizeof(Py_UNICODE))
+  #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
+  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
+#endif
+#if CYTHON_COMPILING_IN_PYPY
+  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
+  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
+#else
+  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
+  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ? \
+      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
+#endif
+#define __Pyx_PyString_FormatSafe(a, b)  ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
+#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
+#if PY_MAJOR_VERSION >= 3
+  #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
+#else
+  #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
+#endif
+#if PY_MAJOR_VERSION >= 3
+  #define PyBaseString_Type            PyUnicode_Type
+  #define PyStringObject               PyUnicodeObject
+  #define PyString_Type                PyUnicode_Type
+  #define PyString_Check               PyUnicode_Check
+  #define PyString_CheckExact          PyUnicode_CheckExact
+#endif
+#if PY_VERSION_HEX < 0x02060000
+  #define PyBytesObject                PyStringObject
+  #define PyBytes_Type                 PyString_Type
+  #define PyBytes_Check                PyString_Check
+  #define PyBytes_CheckExact           PyString_CheckExact
+  #define PyBytes_FromString           PyString_FromString
+  #define PyBytes_FromStringAndSize    PyString_FromStringAndSize
+  #define PyBytes_FromFormat           PyString_FromFormat
+  #define PyBytes_DecodeEscape         PyString_DecodeEscape
+  #define PyBytes_AsString             PyString_AsString
+  #define PyBytes_AsStringAndSize      PyString_AsStringAndSize
+  #define PyBytes_Size                 PyString_Size
+  #define PyBytes_AS_STRING            PyString_AS_STRING
+  #define PyBytes_GET_SIZE             PyString_GET_SIZE
+  #define PyBytes_Repr                 PyString_Repr
+  #define PyBytes_Concat               PyString_Concat
+  #define PyBytes_ConcatAndDel         PyString_ConcatAndDel
+#endif
+#if PY_MAJOR_VERSION >= 3
+  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
+  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
+#else
+  #define __Pyx_PyBaseString_Check(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj) || \
+                                         PyString_Check(obj) || PyUnicode_Check(obj))
+  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
+#endif
+#if PY_VERSION_HEX < 0x02060000
+  #define PySet_Check(obj)             PyObject_TypeCheck(obj, &PySet_Type)
+  #define PyFrozenSet_Check(obj)       PyObject_TypeCheck(obj, &PyFrozenSet_Type)
+#endif
+#ifndef PySet_CheckExact
+  #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
+#endif
+#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
+#if PY_MAJOR_VERSION >= 3
+  #define PyIntObject                  PyLongObject
+  #define PyInt_Type                   PyLong_Type
+  #define PyInt_Check(op)              PyLong_Check(op)
+  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
+  #define PyInt_FromString             PyLong_FromString
+  #define PyInt_FromUnicode            PyLong_FromUnicode
+  #define PyInt_FromLong               PyLong_FromLong
+  #define PyInt_FromSize_t             PyLong_FromSize_t
+  #define PyInt_FromSsize_t            PyLong_FromSsize_t
+  #define PyInt_AsLong                 PyLong_AsLong
+  #define PyInt_AS_LONG                PyLong_AS_LONG
+  #define PyInt_AsSsize_t              PyLong_AsSsize_t
+  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
+  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
+  #define PyNumber_Int                 PyNumber_Long
+#endif
+#if PY_MAJOR_VERSION >= 3
+  #define PyBoolObject                 PyLongObject
+#endif
+#if PY_VERSION_HEX < 0x030200A4
+  typedef long Py_hash_t;
+  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
+  #define __Pyx_PyInt_AsHash_t   PyInt_AsLong
+#else
+  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
+  #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
+#endif
+#if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300)
+  #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b)
+  #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value)
+  #define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b)
+#else
+  #define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \
+        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), (PyObject*)0) : \
+        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_GetSlice(obj, a, b)) : \
+            (PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", (obj)->ob_type->tp_name), (PyObject*)0)))
+  #define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \
+        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
+        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_SetSlice(obj, a, b, value)) : \
+            (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice assignment", (obj)->ob_type->tp_name), -1)))
+  #define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \
+        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
+        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \
+            (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1)))
+#endif
+#if PY_MAJOR_VERSION >= 3
+  #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
+#endif
+#if PY_VERSION_HEX < 0x02050000
+  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),((char *)(n)))
+  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
+  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),((char *)(n)))
+#else
+  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),(n))
+  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
+  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),(n))
+#endif
+#if PY_VERSION_HEX < 0x02050000
+  #define __Pyx_NAMESTR(n) ((char *)(n))
+  #define __Pyx_DOCSTR(n)  ((char *)(n))
+#else
+  #define __Pyx_NAMESTR(n) (n)
+  #define __Pyx_DOCSTR(n)  (n)
+#endif
+#ifndef CYTHON_INLINE
+  #if defined(__GNUC__)
+    #define CYTHON_INLINE __inline__
+  #elif defined(_MSC_VER)
+    #define CYTHON_INLINE __inline
+  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+    #define CYTHON_INLINE inline
+  #else
+    #define CYTHON_INLINE
+  #endif
+#endif
+#ifndef CYTHON_RESTRICT
+  #if defined(__GNUC__)
+    #define CYTHON_RESTRICT __restrict__
+  #elif defined(_MSC_VER) && _MSC_VER >= 1400
+    #define CYTHON_RESTRICT __restrict
+  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+    #define CYTHON_RESTRICT restrict
+  #else
+    #define CYTHON_RESTRICT
+  #endif
+#endif
+#ifdef NAN
+#define __PYX_NAN() ((float) NAN)
+#else
+static CYTHON_INLINE float __PYX_NAN() {
+  /* Initialize NaN. The sign is irrelevant, an exponent with all bits 1 and
+   a nonzero mantissa means NaN. If the first bit in the mantissa is 1, it is
+   a quiet NaN. */
+  float value;
+  memset(&value, 0xFF, sizeof(value));
+  return value;
+}
+#endif
+
+
+#if PY_MAJOR_VERSION >= 3
+  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
+  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
+#else
+  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
+  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
+#endif
+
+#ifndef __PYX_EXTERN_C
+  #ifdef __cplusplus
+    #define __PYX_EXTERN_C extern "C"
+  #else
+    #define __PYX_EXTERN_C extern
+  #endif
+#endif
+
+#if defined(WIN32) || defined(MS_WINDOWS)
+#define _USE_MATH_DEFINES
+#endif
+#include <math.h>
+#define __PYX_HAVE___yaml
+#define __PYX_HAVE_API___yaml
+#include "_yaml.h"
+#ifdef _OPENMP
+#include <omp.h>
+#endif /* _OPENMP */
+
+#ifdef PYREX_WITHOUT_ASSERTIONS
+#define CYTHON_WITHOUT_ASSERTIONS
+#endif
+
+#ifndef CYTHON_UNUSED
+# if defined(__GNUC__)
+#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+#     define CYTHON_UNUSED __attribute__ ((__unused__))
+#   else
+#     define CYTHON_UNUSED
+#   endif
+# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
+#   define CYTHON_UNUSED __attribute__ ((__unused__))
+# else
+#   define CYTHON_UNUSED
+# endif
+#endif
+typedef struct {PyObject **p; char *s; const Py_ssize_t n; const char* encoding;
+                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
+
+#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
+#define __PYX_DEFAULT_STRING_ENCODING ""
+#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
+#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
+#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (    \
+    (sizeof(type) < sizeof(Py_ssize_t))  ||             \
+    (sizeof(type) > sizeof(Py_ssize_t) &&               \
+          likely(v < (type)PY_SSIZE_T_MAX ||            \
+                 v == (type)PY_SSIZE_T_MAX)  &&         \
+          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||       \
+                                v == (type)PY_SSIZE_T_MIN)))  ||  \
+    (sizeof(type) == sizeof(Py_ssize_t) &&              \
+          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||        \
+                               v == (type)PY_SSIZE_T_MAX)))  )
+static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject*);
+static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
+#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
+#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
+#define __Pyx_PyBytes_FromString        PyBytes_FromString
+#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
+static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(char*);
+#if PY_MAJOR_VERSION < 3
+    #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
+    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
+#else
+    #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
+    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
+#endif
+#define __Pyx_PyObject_AsSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
+#define __Pyx_PyObject_AsUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
+#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((char*)s)
+#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((char*)s)
+#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((char*)s)
+#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((char*)s)
+#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((char*)s)
+#if PY_MAJOR_VERSION < 3
+static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
+{
+    const Py_UNICODE *u_end = u;
+    while (*u_end++) ;
+    return u_end - u - 1;
+}
+#else
+#define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen
+#endif
+#define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
+#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
+#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
+#define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None)
+#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
+static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
+static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
+static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
+static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
+#if CYTHON_COMPILING_IN_CPYTHON
+#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
+#else
+#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
+#endif
+#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
+#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
+static int __Pyx_sys_getdefaultencoding_not_ascii;
+static int __Pyx_init_sys_getdefaultencoding_params(void) {
+    PyObject* sys = NULL;
+    PyObject* default_encoding = NULL;
+    PyObject* ascii_chars_u = NULL;
+    PyObject* ascii_chars_b = NULL;
+    sys = PyImport_ImportModule("sys");
+    if (sys == NULL) goto bad;
+    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
+    if (default_encoding == NULL) goto bad;
+    if (strcmp(PyBytes_AsString(default_encoding), "ascii") == 0) {
+        __Pyx_sys_getdefaultencoding_not_ascii = 0;
+    } else {
+        const char* default_encoding_c = PyBytes_AS_STRING(default_encoding);
+        char ascii_chars[128];
+        int c;
+        for (c = 0; c < 128; c++) {
+            ascii_chars[c] = c;
+        }
+        __Pyx_sys_getdefaultencoding_not_ascii = 1;
+        ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
+        if (ascii_chars_u == NULL) goto bad;
+        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
+        if (ascii_chars_b == NULL || strncmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
+            PyErr_Format(
+                PyExc_ValueError,
+                "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
+                default_encoding_c);
+            goto bad;
+        }
+    }
+    Py_XDECREF(sys);
+    Py_XDECREF(default_encoding);
+    Py_XDECREF(ascii_chars_u);
+    Py_XDECREF(ascii_chars_b);
+    return 0;
+bad:
+    Py_XDECREF(sys);
+    Py_XDECREF(default_encoding);
+    Py_XDECREF(ascii_chars_u);
+    Py_XDECREF(ascii_chars_b);
+    return -1;
+}
+#endif
+#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
+#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
+#else
+#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
+#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
+static char* __PYX_DEFAULT_STRING_ENCODING;
+static int __Pyx_init_sys_getdefaultencoding_params(void) {
+    PyObject* sys = NULL;
+    PyObject* default_encoding = NULL;
+    char* default_encoding_c;
+    sys = PyImport_ImportModule("sys");
+    if (sys == NULL) goto bad;
+    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
+    if (default_encoding == NULL) goto bad;
+    default_encoding_c = PyBytes_AS_STRING(default_encoding);
+    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c));
+    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
+    Py_DECREF(sys);
+    Py_DECREF(default_encoding);
+    return 0;
+bad:
+    Py_XDECREF(sys);
+    Py_XDECREF(default_encoding);
+    return -1;
+}
+#endif
+#endif
+
+
+#ifdef __GNUC__
+  /* Test for GCC > 2.95 */
+  #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))
+    #define likely(x)   __builtin_expect(!!(x), 1)
+    #define unlikely(x) __builtin_expect(!!(x), 0)
+  #else /* __GNUC__ > 2 ... */
+    #define likely(x)   (x)
+    #define unlikely(x) (x)
+  #endif /* __GNUC__ > 2 ... */
+#else /* __GNUC__ */
+  #define likely(x)   (x)
+  #define unlikely(x) (x)
+#endif /* __GNUC__ */
+
+static PyObject *__pyx_m;
+static PyObject *__pyx_d;
+static PyObject *__pyx_b;
+static PyObject *__pyx_empty_tuple;
+static PyObject *__pyx_empty_bytes;
+static int __pyx_lineno;
+static int __pyx_clineno = 0;
+static const char * __pyx_cfilenm= __FILE__;
+static const char *__pyx_filename;
+
+
+static const char *__pyx_f[] = {
+  "_yaml.pyx",
+};
+
+/*--- Type declarations ---*/
+struct __pyx_obj_5_yaml_Mark;
+struct __pyx_obj_5_yaml_CParser;
+struct __pyx_obj_5_yaml_CEmitter;
+
+/* "_yaml.pyx":64
+ * MappingNode = yaml.nodes.MappingNode
+ * 
+ * cdef class Mark:             # <<<<<<<<<<<<<<
+ *     cdef readonly object name
+ *     cdef readonly int index
+ */
+struct __pyx_obj_5_yaml_Mark {
+  PyObject_HEAD
+  PyObject *name;
+  int index;
+  int line;
+  int column;
+  PyObject *buffer;
+  PyObject *pointer;
+};
+
+
+/* "_yaml.pyx":247
+ * #        self.style = style
+ * 
+ * cdef class CParser:             # <<<<<<<<<<<<<<
+ * 
+ *     cdef yaml_parser_t parser
+ */
+struct __pyx_obj_5_yaml_CParser {
+  PyObject_HEAD
+  struct __pyx_vtabstruct_5_yaml_CParser *__pyx_vtab;
+  yaml_parser_t parser;
+  yaml_event_t parsed_event;
+  PyObject *stream;
+  PyObject *stream_name;
+  PyObject *current_token;
+  PyObject *current_event;
+  PyObject *anchors;
+  PyObject *stream_cache;
+  int stream_cache_len;
+  int stream_cache_pos;
+  int unicode_source;
+};
+
+
+/* "_yaml.pyx":935
+ *     return 1
+ * 
+ * cdef class CEmitter:             # <<<<<<<<<<<<<<
+ * 
+ *     cdef yaml_emitter_t emitter
+ */
+struct __pyx_obj_5_yaml_CEmitter {
+  PyObject_HEAD
+  struct __pyx_vtabstruct_5_yaml_CEmitter *__pyx_vtab;
+  yaml_emitter_t emitter;
+  PyObject *stream;
+  int document_start_implicit;
+  int document_end_implicit;
+  PyObject *use_version;
+  PyObject *use_tags;
+  PyObject *serialized_nodes;
+  PyObject *anchors;
+  int last_alias_id;
+  int closed;
+  int dump_unicode;
+  PyObject *use_encoding;
+};
+
+
+
+/* "_yaml.pyx":247
+ * #        self.style = style
+ * 
+ * cdef class CParser:             # <<<<<<<<<<<<<<
+ * 
+ *     cdef yaml_parser_t parser
+ */
+
+struct __pyx_vtabstruct_5_yaml_CParser {
+  PyObject *(*_parser_error)(struct __pyx_obj_5_yaml_CParser *);
+  PyObject *(*_scan)(struct __pyx_obj_5_yaml_CParser *);
+  PyObject *(*_token_to_object)(struct __pyx_obj_5_yaml_CParser *, yaml_token_t *);
+  PyObject *(*_parse)(struct __pyx_obj_5_yaml_CParser *);
+  PyObject *(*_event_to_object)(struct __pyx_obj_5_yaml_CParser *, yaml_event_t *);
+  PyObject *(*_compose_document)(struct __pyx_obj_5_yaml_CParser *);
+  PyObject *(*_compose_node)(struct __pyx_obj_5_yaml_CParser *, PyObject *, PyObject *);
+  PyObject *(*_compose_scalar_node)(struct __pyx_obj_5_yaml_CParser *, PyObject *);
+  PyObject *(*_compose_sequence_node)(struct __pyx_obj_5_yaml_CParser *, PyObject *);
+  PyObject *(*_compose_mapping_node)(struct __pyx_obj_5_yaml_CParser *, PyObject *);
+  int (*_parse_next_event)(struct __pyx_obj_5_yaml_CParser *);
+};
+static struct __pyx_vtabstruct_5_yaml_CParser *__pyx_vtabptr_5_yaml_CParser;
+
+
+/* "_yaml.pyx":935
+ *     return 1
+ * 
+ * cdef class CEmitter:             # <<<<<<<<<<<<<<
+ * 
+ *     cdef yaml_emitter_t emitter
+ */
+
+struct __pyx_vtabstruct_5_yaml_CEmitter {
+  PyObject *(*_emitter_error)(struct __pyx_obj_5_yaml_CEmitter *);
+  int (*_object_to_event)(struct __pyx_obj_5_yaml_CEmitter *, PyObject *, yaml_event_t *);
+  int (*_anchor_node)(struct __pyx_obj_5_yaml_CEmitter *, PyObject *);
+  int (*_serialize_node)(struct __pyx_obj_5_yaml_CEmitter *, PyObject *, PyObject *, PyObject *);
+};
+static struct __pyx_vtabstruct_5_yaml_CEmitter *__pyx_vtabptr_5_yaml_CEmitter;
+#ifndef CYTHON_REFNANNY
+  #define CYTHON_REFNANNY 0
+#endif
+#if CYTHON_REFNANNY
+  typedef struct {
+    void (*INCREF)(void*, PyObject*, int);
+    void (*DECREF)(void*, PyObject*, int);
+    void (*GOTREF)(void*, PyObject*, int);
+    void (*GIVEREF)(void*, PyObject*, int);
+    void* (*SetupContext)(const char*, int, const char*);
+    void (*FinishContext)(void**);
+  } __Pyx_RefNannyAPIStruct;
+  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
+  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); /*proto*/
+  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
+#ifdef WITH_THREAD
+  #define __Pyx_RefNannySetupContext(name, acquire_gil) \
+          if (acquire_gil) { \
+              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); \
+              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \
+              PyGILState_Release(__pyx_gilstate_save); \
+          } else { \
+              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \
+          }
+#else
+  #define __Pyx_RefNannySetupContext(name, acquire_gil) \
+          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
+#endif
+  #define __Pyx_RefNannyFinishContext() \
+          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
+  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
+  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
+  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
+  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
+  #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
+  #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
+  #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
+  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
+#else
+  #define __Pyx_RefNannyDeclarations
+  #define __Pyx_RefNannySetupContext(name, acquire_gil)
+  #define __Pyx_RefNannyFinishContext()
+  #define __Pyx_INCREF(r) Py_INCREF(r)
+  #define __Pyx_DECREF(r) Py_DECREF(r)
+  #define __Pyx_GOTREF(r)
+  #define __Pyx_GIVEREF(r)
+  #define __Pyx_XINCREF(r) Py_XINCREF(r)
+  #define __Pyx_XDECREF(r) Py_XDECREF(r)
+  #define __Pyx_XGOTREF(r)
+  #define __Pyx_XGIVEREF(r)
+#endif /* CYTHON_REFNANNY */
+#define __Pyx_XDECREF_SET(r, v) do {                            \
+        PyObject *tmp = (PyObject *) r;                         \
+        r = v; __Pyx_XDECREF(tmp);                              \
+    } while (0)
+#define __Pyx_DECREF_SET(r, v) do {                             \
+        PyObject *tmp = (PyObject *) r;                         \
+        r = v; __Pyx_DECREF(tmp);                               \
+    } while (0)
+#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
+#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
+
+#if CYTHON_COMPILING_IN_CPYTHON
+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
+    PyTypeObject* tp = Py_TYPE(obj);
+    if (likely(tp->tp_getattro))
+        return tp->tp_getattro(obj, attr_name);
+#if PY_MAJOR_VERSION < 3
+    if (likely(tp->tp_getattr))
+        return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
+#endif
+    return PyObject_GetAttr(obj, attr_name);
+}
+#else
+#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
+#endif
+
+static PyObject *__Pyx_GetBuiltinName(PyObject *name); /*proto*/
+
+static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
+    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/
+
+static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /*proto*/
+
+static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], \
+    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, \
+    const char* function_name); /*proto*/
+
+static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
+static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
+
+static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
+
+#if CYTHON_COMPILING_IN_CPYTHON
+static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); /*proto*/
+#else
+#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
+#endif
+
+static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
+static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
+
+static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/
+
+static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name); /*proto*/
+
+static CYTHON_INLINE int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); /*proto*/
+
+static CYTHON_INLINE int __Pyx_PySequence_Contains(PyObject* item, PyObject* seq, int eq) {
+    int result = PySequence_Contains(seq, item);
+    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
+}
+
+static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);
+
+#if CYTHON_COMPILING_IN_CPYTHON
+static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
+    PyListObject* L = (PyListObject*) list;
+    Py_ssize_t len = Py_SIZE(list);
+    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
+        Py_INCREF(x);
+        PyList_SET_ITEM(list, len, x);
+        Py_SIZE(list) = len+1;
+        return 0;
+    }
+    return PyList_Append(list, x);
+}
+#else
+#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
+#endif
+
+#if CYTHON_COMPILING_IN_CPYTHON
+#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o,n,NULL)
+static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
+    PyTypeObject* tp = Py_TYPE(obj);
+    if (likely(tp->tp_setattro))
+        return tp->tp_setattro(obj, attr_name, value);
+#if PY_MAJOR_VERSION < 3
+    if (likely(tp->tp_setattr))
+        return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
+#endif
+    return PyObject_SetAttr(obj, attr_name, value);
+}
+#else
+#define __Pyx_PyObject_DelAttrStr(o,n)   PyObject_DelAttr(o,n)
+#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
+#endif
+
+static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /*proto*/
+
+static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); /*proto*/
+
+#include <string.h>
+
+static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); /*proto*/
+
+static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); /*proto*/
+
+#if PY_MAJOR_VERSION >= 3
+#define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals
+#else
+#define __Pyx_PyString_Equals __Pyx_PyBytes_Equals
+#endif
+
+#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck) \
+    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ? \
+    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) : \
+    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) : \
+               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
+#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck) \
+    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ? \
+    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) : \
+    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
+                                                              int wraparound, int boundscheck);
+#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck) \
+    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ? \
+    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) : \
+    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
+                                                              int wraparound, int boundscheck);
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
+                                                     int is_list, int wraparound, int boundscheck);
+
+static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
+
+static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
+
+static CYTHON_INLINE int __Pyx_IterFinish(void); /*proto*/
+
+static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /*proto*/
+
+static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
+
+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
+
+static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /*proto*/
+
+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
+
+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
+
+static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
+
+static int __Pyx_check_binary_version(void);
+
+typedef struct {
+    int code_line;
+    PyCodeObject* code_object;
+} __Pyx_CodeObjectCacheEntry;
+struct __Pyx_CodeObjectCache {
+    int count;
+    int max_count;
+    __Pyx_CodeObjectCacheEntry* entries;
+};
+static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
+static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
+static PyCodeObject *__pyx_find_code_object(int code_line);
+static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
+
+static void __Pyx_AddTraceback(const char *funcname, int c_line,
+                               int py_line, const char *filename); /*proto*/
+
+static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
+
+
+/* Module declarations from '_yaml' */
+static PyTypeObject *__pyx_ptype_5_yaml_Mark = 0;
+static PyTypeObject *__pyx_ptype_5_yaml_CParser = 0;
+static PyTypeObject *__pyx_ptype_5_yaml_CEmitter = 0;
+static int __pyx_f_5_yaml_input_handler(void *, char *, int, int *); /*proto*/
+static int __pyx_f_5_yaml_output_handler(void *, char *, int); /*proto*/
+#define __Pyx_MODULE_NAME "_yaml"
+int __pyx_module_is_main__yaml = 0;
+
+/* Implementation of '_yaml' */
+static PyObject *__pyx_builtin_MemoryError;
+static PyObject *__pyx_builtin_AttributeError;
+static PyObject *__pyx_builtin_TypeError;
+static PyObject *__pyx_builtin_ValueError;
+static PyObject *__pyx_pf_5_yaml_get_version_string(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_2get_version(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
+static int __pyx_pf_5_yaml_4Mark___init__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self, PyObject *__pyx_v_name, int __pyx_v_index, int __pyx_v_line, int __pyx_v_column, PyObject *__pyx_v_buffer, PyObject *__pyx_v_pointer); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_2get_snippet(CYTHON_UNUSED struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_4__str__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_4name___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_5index___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_4line___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_6column___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_6buffer___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_7pointer___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static int __pyx_pf_5_yaml_7CParser___init__(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_stream); /* proto */
+static void __pyx_pf_5_yaml_7CParser_2__dealloc__(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_4dispose(CYTHON_UNUSED struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_6raw_scan(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_8get_token(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_10peek_token(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_12check_token(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_choices); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_14raw_parse(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_16get_event(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_18peek_event(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_20check_event(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_choices); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_22check_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_24get_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_26get_single_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static int __pyx_pf_5_yaml_8CEmitter___init__(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_stream, PyObject *__pyx_v_canonical, PyObject *__pyx_v_indent, PyObject *__pyx_v_width, PyObject *__pyx_v_allow_unicode, PyObject *__pyx_v_line_break, PyObject *__pyx_v_encoding, PyObject *__pyx_v_explicit_start, PyObject *__pyx_v_explicit_end, PyObject *__pyx_v_version, PyObject *__pyx_v_tags); /* proto */
+static void __pyx_pf_5_yaml_8CEmitter_2__dealloc__(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_8CEmitter_4dispose(CYTHON_UNUSED struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_8CEmitter_6emit(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_event_object); /* proto */
+static PyObject *__pyx_pf_5_yaml_8CEmitter_8open(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_8CEmitter_10close(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_8CEmitter_12serialize(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
+static PyObject *__pyx_tp_new_5_yaml_Mark(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_5_yaml_CParser(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_5_yaml_CEmitter(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static char __pyx_k__3[] = "?";
+static char __pyx_k__6[] = "";
+static char __pyx_k__7[] = "'";
+static char __pyx_k__8[] = "\"";
+static char __pyx_k__9[] = "|";
+static char __pyx_k_TAG[] = "TAG";
+static char __pyx_k__10[] = ">";
+static char __pyx_k__17[] = "\r";
+static char __pyx_k__18[] = "\n";
+static char __pyx_k__19[] = "\r\n";
+static char __pyx_k_tag[] = "tag";
+static char __pyx_k_YAML[] = "YAML";
+static char __pyx_k_file[] = "<file>";
+static char __pyx_k_line[] = "line";
+static char __pyx_k_main[] = "__main__";
+static char __pyx_k_name[] = "name";
+static char __pyx_k_read[] = "read";
+static char __pyx_k_tags[] = "tags";
+static char __pyx_k_test[] = "__test__";
+static char __pyx_k_yaml[] = "yaml";
+static char __pyx_k_class[] = "__class__";
+static char __pyx_k_error[] = "error";
+static char __pyx_k_index[] = "index";
+static char __pyx_k_major[] = "major";
+static char __pyx_k_minor[] = "minor";
+static char __pyx_k_nodes[] = "nodes";
+static char __pyx_k_patch[] = "patch";
+static char __pyx_k_style[] = "style";
+static char __pyx_k_utf_8[] = "utf-8";
+static char __pyx_k_value[] = "value";
+static char __pyx_k_width[] = "width";
+static char __pyx_k_write[] = "write";
+static char __pyx_k_anchor[] = "anchor";
+static char __pyx_k_buffer[] = "buffer";
+static char __pyx_k_column[] = "column";
+static char __pyx_k_events[] = "events";
+static char __pyx_k_id_03d[] = "id%03d";
+static char __pyx_k_import[] = "__import__";
+static char __pyx_k_indent[] = "indent";
+static char __pyx_k_parser[] = "parser";
+static char __pyx_k_reader[] = "reader";
+static char __pyx_k_stream[] = "stream";
+static char __pyx_k_strict[] = "strict";
+static char __pyx_k_tokens[] = "tokens";
+static char __pyx_k_yaml_2[] = "_yaml";
+static char __pyx_k_emitter[] = "emitter";
+static char __pyx_k_pointer[] = "pointer";
+static char __pyx_k_resolve[] = "resolve";
+static char __pyx_k_scanner[] = "scanner";
+static char __pyx_k_version[] = "version";
+static char __pyx_k_KeyToken[] = "KeyToken";
+static char __pyx_k_TagToken[] = "TagToken";
+static char __pyx_k_composer[] = "composer";
+static char __pyx_k_encoding[] = "encoding";
+static char __pyx_k_end_mark[] = "end_mark";
+static char __pyx_k_explicit[] = "explicit";
+static char __pyx_k_implicit[] = "implicit";
+static char __pyx_k_TypeError[] = "TypeError";
+static char __pyx_k_YAMLError[] = "YAMLError";
+static char __pyx_k_canonical[] = "canonical";
+static char __pyx_k_utf_16_be[] = "utf-16-be";
+static char __pyx_k_utf_16_le[] = "utf-16-le";
+static char __pyx_k_AliasEvent[] = "AliasEvent";
+static char __pyx_k_AliasToken[] = "AliasToken";
+static char __pyx_k_ScalarNode[] = "ScalarNode";
+static char __pyx_k_ValueError[] = "ValueError";
+static char __pyx_k_ValueToken[] = "ValueToken";
+static char __pyx_k_flow_style[] = "flow_style";
+static char __pyx_k_line_break[] = "line_break";
+static char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
+static char __pyx_k_serializer[] = "serializer";
+static char __pyx_k_start_mark[] = "start_mark";
+static char __pyx_k_AnchorToken[] = "AnchorToken";
+static char __pyx_k_MappingNode[] = "MappingNode";
+static char __pyx_k_MemoryError[] = "MemoryError";
+static char __pyx_k_ParserError[] = "ParserError";
+static char __pyx_k_ReaderError[] = "ReaderError";
+static char __pyx_k_ScalarEvent[] = "ScalarEvent";
+static char __pyx_k_ScalarToken[] = "ScalarToken";
+static char __pyx_k_byte_string[] = "<byte string>";
+static char __pyx_k_constructor[] = "constructor";
+static char __pyx_k_get_version[] = "get_version";
+static char __pyx_k_representer[] = "representer";
+static char __pyx_k_EmitterError[] = "EmitterError";
+static char __pyx_k_ScannerError[] = "ScannerError";
+static char __pyx_k_SequenceNode[] = "SequenceNode";
+static char __pyx_k_explicit_end[] = "explicit_end";
+static char __pyx_k_BlockEndToken[] = "BlockEndToken";
+static char __pyx_k_ComposerError[] = "ComposerError";
+static char __pyx_k_allow_unicode[] = "allow_unicode";
+static char __pyx_k_too_many_tags[] = "too many tags";
+static char __pyx_k_AttributeError[] = "AttributeError";
+static char __pyx_k_DirectiveToken[] = "DirectiveToken";
+static char __pyx_k_FlowEntryToken[] = "FlowEntryToken";
+static char __pyx_k_StreamEndEvent[] = "StreamEndEvent";
+static char __pyx_k_StreamEndToken[] = "StreamEndToken";
+static char __pyx_k_explicit_start[] = "explicit_start";
+static char __pyx_k_unicode_string[] = "<unicode string>";
+static char __pyx_k_BlockEntryToken[] = "BlockEntryToken";
+static char __pyx_k_MappingEndEvent[] = "MappingEndEvent";
+static char __pyx_k_SerializerError[] = "SerializerError";
+static char __pyx_k_ascend_resolver[] = "ascend_resolver";
+static char __pyx_k_invalid_event_s[] = "invalid event %s";
+static char __pyx_k_no_parser_error[] = "no parser error";
+static char __pyx_k_ConstructorError[] = "ConstructorError";
+static char __pyx_k_DocumentEndEvent[] = "DocumentEndEvent";
+static char __pyx_k_DocumentEndToken[] = "DocumentEndToken";
+static char __pyx_k_RepresenterError[] = "RepresenterError";
+static char __pyx_k_SequenceEndEvent[] = "SequenceEndEvent";
+static char __pyx_k_StreamStartEvent[] = "StreamStartEvent";
+static char __pyx_k_StreamStartToken[] = "StreamStartToken";
+static char __pyx_k_descend_resolver[] = "descend_resolver";
+static char __pyx_k_no_emitter_error[] = "no emitter error";
+static char __pyx_k_second_occurence[] = "second occurence";
+static char __pyx_k_MappingStartEvent[] = "MappingStartEvent";
+static char __pyx_k_DocumentStartEvent[] = "DocumentStartEvent";
+static char __pyx_k_DocumentStartToken[] = "DocumentStartToken";
+static char __pyx_k_SequenceStartEvent[] = "SequenceStartEvent";
+static char __pyx_k_get_version_string[] = "get_version_string";
+static char __pyx_k_unknown_event_type[] = "unknown event type";
+static char __pyx_k_unknown_token_type[] = "unknown token type";
+static char __pyx_k_FlowMappingEndToken[] = "FlowMappingEndToken";
+static char __pyx_k_FlowSequenceEndToken[] = "FlowSequenceEndToken";
+static char __pyx_k_in_s_line_d_column_d[] = "  in \"%s\", line %d, column %d";
+static char __pyx_k_serializer_is_closed[] = "serializer is closed";
+static char __pyx_k_tag_must_be_a_string[] = "tag must be a string";
+static char __pyx_k_FlowMappingStartToken[] = "FlowMappingStartToken";
+static char __pyx_k_found_undefined_alias[] = "found undefined alias";
+static char __pyx_k_BlockMappingStartToken[] = "BlockMappingStartToken";
+static char __pyx_k_FlowSequenceStartToken[] = "FlowSequenceStartToken";
+static char __pyx_k_value_must_be_a_string[] = "value must be a string";
+static char __pyx_k_BlockSequenceStartToken[] = "BlockSequenceStartToken";
+static char __pyx_k_anchor_must_be_a_string[] = "anchor must be a string";
+static char __pyx_k_serializer_is_not_opened[] = "serializer is not opened";
+static char __pyx_k_a_string_value_is_expected[] = "a string value is expected";
+static char __pyx_k_but_found_another_document[] = "but found another document";
+static char __pyx_k_tag_handle_must_be_a_string[] = "tag handle must be a string";
+static char __pyx_k_tag_prefix_must_be_a_string[] = "tag prefix must be a string";
+static char __pyx_k_serializer_is_already_opened[] = "serializer is already opened";
+static char __pyx_k_root_src_pyyaml_ext__yaml_pyx[] = "/root/src/pyyaml/ext/_yaml.pyx";
+static char __pyx_k_a_string_or_stream_input_is_requ[] = "a string or stream input is required";
+static char __pyx_k_expected_a_single_document_in_th[] = "expected a single document in the stream";
+static char __pyx_k_found_duplicate_anchor_first_occ[] = "found duplicate anchor; first occurence";
+static PyObject *__pyx_n_s_AliasEvent;
+static PyObject *__pyx_n_s_AliasToken;
+static PyObject *__pyx_n_s_AnchorToken;
+static PyObject *__pyx_n_s_AttributeError;
+static PyObject *__pyx_n_s_BlockEndToken;
+static PyObject *__pyx_n_s_BlockEntryToken;
+static PyObject *__pyx_n_s_BlockMappingStartToken;
+static PyObject *__pyx_n_s_BlockSequenceStartToken;
+static PyObject *__pyx_n_s_ComposerError;
+static PyObject *__pyx_n_s_ConstructorError;
+static PyObject *__pyx_n_s_DirectiveToken;
+static PyObject *__pyx_n_s_DocumentEndEvent;
+static PyObject *__pyx_n_s_DocumentEndToken;
+static PyObject *__pyx_n_s_DocumentStartEvent;
+static PyObject *__pyx_n_s_DocumentStartToken;
+static PyObject *__pyx_n_s_EmitterError;
+static PyObject *__pyx_n_s_FlowEntryToken;
+static PyObject *__pyx_n_s_FlowMappingEndToken;
+static PyObject *__pyx_n_s_FlowMappingStartToken;
+static PyObject *__pyx_n_s_FlowSequenceEndToken;
+static PyObject *__pyx_n_s_FlowSequenceStartToken;
+static PyObject *__pyx_n_s_KeyToken;
+static PyObject *__pyx_n_s_MappingEndEvent;
+static PyObject *__pyx_n_s_MappingNode;
+static PyObject *__pyx_n_s_MappingStartEvent;
+static PyObject *__pyx_n_s_MemoryError;
+static PyObject *__pyx_n_s_ParserError;
+static PyObject *__pyx_n_s_ReaderError;
+static PyObject *__pyx_n_s_RepresenterError;
+static PyObject *__pyx_n_s_ScalarEvent;
+static PyObject *__pyx_n_s_ScalarNode;
+static PyObject *__pyx_n_s_ScalarToken;
+static PyObject *__pyx_n_s_ScannerError;
+static PyObject *__pyx_n_s_SequenceEndEvent;
+static PyObject *__pyx_n_s_SequenceNode;
+static PyObject *__pyx_n_s_SequenceStartEvent;
+static PyObject *__pyx_n_s_SerializerError;
+static PyObject *__pyx_n_s_StreamEndEvent;
+static PyObject *__pyx_n_s_StreamEndToken;
+static PyObject *__pyx_n_s_StreamStartEvent;
+static PyObject *__pyx_n_s_StreamStartToken;
+static PyObject *__pyx_n_u_TAG;
+static PyObject *__pyx_n_s_TagToken;
+static PyObject *__pyx_n_s_TypeError;
+static PyObject *__pyx_n_s_ValueError;
+static PyObject *__pyx_n_s_ValueToken;
+static PyObject *__pyx_n_u_YAML;
+static PyObject *__pyx_n_s_YAMLError;
+static PyObject *__pyx_kp_s__10;
+static PyObject *__pyx_kp_u__10;
+static PyObject *__pyx_kp_s__17;
+static PyObject *__pyx_kp_s__18;
+static PyObject *__pyx_kp_s__19;
+static PyObject *__pyx_kp_s__3;
+static PyObject *__pyx_kp_u__3;
+static PyObject *__pyx_kp_u__6;
+static PyObject *__pyx_kp_s__7;
+static PyObject *__pyx_kp_u__7;
+static PyObject *__pyx_kp_s__8;
+static PyObject *__pyx_kp_u__8;
+static PyObject *__pyx_kp_s__9;
+static PyObject *__pyx_kp_u__9;
+static PyObject *__pyx_kp_s_a_string_or_stream_input_is_requ;
+static PyObject *__pyx_kp_u_a_string_or_stream_input_is_requ;
+static PyObject *__pyx_kp_s_a_string_value_is_expected;
+static PyObject *__pyx_kp_u_a_string_value_is_expected;
+static PyObject *__pyx_n_s_allow_unicode;
+static PyObject *__pyx_n_s_anchor;
+static PyObject *__pyx_kp_s_anchor_must_be_a_string;
+static PyObject *__pyx_kp_u_anchor_must_be_a_string;
+static PyObject *__pyx_n_s_ascend_resolver;
+static PyObject *__pyx_n_s_buffer;
+static PyObject *__pyx_kp_s_but_found_another_document;
+static PyObject *__pyx_kp_u_but_found_another_document;
+static PyObject *__pyx_kp_s_byte_string;
+static PyObject *__pyx_kp_u_byte_string;
+static PyObject *__pyx_n_s_canonical;
+static PyObject *__pyx_n_s_class;
+static PyObject *__pyx_n_s_column;
+static PyObject *__pyx_n_s_composer;
+static PyObject *__pyx_n_s_constructor;
+static PyObject *__pyx_n_s_descend_resolver;
+static PyObject *__pyx_n_s_emitter;
+static PyObject *__pyx_n_s_encoding;
+static PyObject *__pyx_n_u_encoding;
+static PyObject *__pyx_n_s_end_mark;
+static PyObject *__pyx_n_s_error;
+static PyObject *__pyx_n_s_events;
+static PyObject *__pyx_kp_s_expected_a_single_document_in_th;
+static PyObject *__pyx_kp_u_expected_a_single_document_in_th;
+static PyObject *__pyx_n_s_explicit;
+static PyObject *__pyx_n_s_explicit_end;
+static PyObject *__pyx_n_s_explicit_start;
+static PyObject *__pyx_kp_s_file;
+static PyObject *__pyx_kp_u_file;
+static PyObject *__pyx_n_s_flow_style;
+static PyObject *__pyx_kp_s_found_duplicate_anchor_first_occ;
+static PyObject *__pyx_kp_u_found_duplicate_anchor_first_occ;
+static PyObject *__pyx_kp_s_found_undefined_alias;
+static PyObject *__pyx_kp_u_found_undefined_alias;
+static PyObject *__pyx_n_s_get_version;
+static PyObject *__pyx_n_s_get_version_string;
+static PyObject *__pyx_kp_u_id_03d;
+static PyObject *__pyx_n_s_implicit;
+static PyObject *__pyx_n_s_import;
+static PyObject *__pyx_kp_s_in_s_line_d_column_d;
+static PyObject *__pyx_n_s_indent;
+static PyObject *__pyx_n_s_index;
+static PyObject *__pyx_kp_s_invalid_event_s;
+static PyObject *__pyx_kp_u_invalid_event_s;
+static PyObject *__pyx_n_s_line;
+static PyObject *__pyx_n_s_line_break;
+static PyObject *__pyx_n_s_main;
+static PyObject *__pyx_n_s_major;
+static PyObject *__pyx_n_s_minor;
+static PyObject *__pyx_n_s_name;
+static PyObject *__pyx_kp_s_no_emitter_error;
+static PyObject *__pyx_kp_u_no_emitter_error;
+static PyObject *__pyx_kp_s_no_parser_error;
+static PyObject *__pyx_kp_u_no_parser_error;
+static PyObject *__pyx_n_s_nodes;
+static PyObject *__pyx_n_s_parser;
+static PyObject *__pyx_n_s_patch;
+static PyObject *__pyx_n_s_pointer;
+static PyObject *__pyx_n_s_pyx_vtable;
+static PyObject *__pyx_n_s_read;
+static PyObject *__pyx_n_s_reader;
+static PyObject *__pyx_n_s_representer;
+static PyObject *__pyx_n_s_resolve;
+static PyObject *__pyx_kp_s_root_src_pyyaml_ext__yaml_pyx;
+static PyObject *__pyx_n_s_scanner;
+static PyObject *__pyx_kp_s_second_occurence;
+static PyObject *__pyx_kp_u_second_occurence;
+static PyObject *__pyx_n_s_serializer;
+static PyObject *__pyx_kp_s_serializer_is_already_opened;
+static PyObject *__pyx_kp_u_serializer_is_already_opened;
+static PyObject *__pyx_kp_s_serializer_is_closed;
+static PyObject *__pyx_kp_u_serializer_is_closed;
+static PyObject *__pyx_kp_s_serializer_is_not_opened;
+static PyObject *__pyx_kp_u_serializer_is_not_opened;
+static PyObject *__pyx_n_s_start_mark;
+static PyObject *__pyx_n_s_stream;
+static PyObject *__pyx_n_s_style;
+static PyObject *__pyx_n_s_tag;
+static PyObject *__pyx_kp_s_tag_handle_must_be_a_string;
+static PyObject *__pyx_kp_u_tag_handle_must_be_a_string;
+static PyObject *__pyx_kp_s_tag_must_be_a_string;
+static PyObject *__pyx_kp_u_tag_must_be_a_string;
+static PyObject *__pyx_kp_s_tag_prefix_must_be_a_string;
+static PyObject *__pyx_kp_u_tag_prefix_must_be_a_string;
+static PyObject *__pyx_n_s_tags;
+static PyObject *__pyx_n_s_test;
+static PyObject *__pyx_n_s_tokens;
+static PyObject *__pyx_kp_s_too_many_tags;
+static PyObject *__pyx_kp_u_too_many_tags;
+static PyObject *__pyx_kp_s_unicode_string;
+static PyObject *__pyx_kp_u_unicode_string;
+static PyObject *__pyx_kp_s_unknown_event_type;
+static PyObject *__pyx_kp_u_unknown_event_type;
+static PyObject *__pyx_kp_s_unknown_token_type;
+static PyObject *__pyx_kp_u_unknown_token_type;
+static PyObject *__pyx_kp_s_utf_16_be;
+static PyObject *__pyx_kp_u_utf_16_be;
+static PyObject *__pyx_kp_s_utf_16_le;
+static PyObject *__pyx_kp_u_utf_16_le;
+static PyObject *__pyx_kp_u_utf_8;
+static PyObject *__pyx_n_s_value;
+static PyObject *__pyx_kp_s_value_must_be_a_string;
+static PyObject *__pyx_kp_u_value_must_be_a_string;
+static PyObject *__pyx_n_s_version;
+static PyObject *__pyx_n_s_width;
+static PyObject *__pyx_n_s_write;
+static PyObject *__pyx_n_s_yaml;
+static PyObject *__pyx_n_s_yaml_2;
+static PyObject *__pyx_int_0;
+static PyObject *__pyx_int_1;
+static PyObject *__pyx_tuple_;
+static PyObject *__pyx_tuple__2;
+static PyObject *__pyx_tuple__4;
+static PyObject *__pyx_tuple__5;
+static PyObject *__pyx_tuple__11;
+static PyObject *__pyx_tuple__12;
+static PyObject *__pyx_tuple__13;
+static PyObject *__pyx_tuple__14;
+static PyObject *__pyx_tuple__15;
+static PyObject *__pyx_tuple__16;
+static PyObject *__pyx_tuple__20;
+static PyObject *__pyx_tuple__21;
+static PyObject *__pyx_tuple__22;
+static PyObject *__pyx_tuple__23;
+static PyObject *__pyx_tuple__24;
+static PyObject *__pyx_tuple__25;
+static PyObject *__pyx_tuple__26;
+static PyObject *__pyx_tuple__27;
+static PyObject *__pyx_tuple__28;
+static PyObject *__pyx_tuple__29;
+static PyObject *__pyx_tuple__30;
+static PyObject *__pyx_tuple__31;
+static PyObject *__pyx_tuple__32;
+static PyObject *__pyx_tuple__33;
+static PyObject *__pyx_tuple__34;
+static PyObject *__pyx_tuple__35;
+static PyObject *__pyx_tuple__36;
+static PyObject *__pyx_tuple__37;
+static PyObject *__pyx_tuple__38;
+static PyObject *__pyx_tuple__39;
+static PyObject *__pyx_tuple__40;
+static PyObject *__pyx_tuple__41;
+static PyObject *__pyx_tuple__42;
+static PyObject *__pyx_tuple__43;
+static PyObject *__pyx_tuple__44;
+static PyObject *__pyx_tuple__45;
+static PyObject *__pyx_tuple__46;
+static PyObject *__pyx_tuple__47;
+static PyObject *__pyx_tuple__48;
+static PyObject *__pyx_tuple__49;
+static PyObject *__pyx_tuple__50;
+static PyObject *__pyx_tuple__51;
+static PyObject *__pyx_tuple__52;
+static PyObject *__pyx_tuple__53;
+static PyObject *__pyx_tuple__54;
+static PyObject *__pyx_tuple__55;
+static PyObject *__pyx_tuple__56;
+static PyObject *__pyx_tuple__57;
+static PyObject *__pyx_tuple__58;
+static PyObject *__pyx_tuple__59;
+static PyObject *__pyx_tuple__60;
+static PyObject *__pyx_tuple__61;
+static PyObject *__pyx_tuple__62;
+static PyObject *__pyx_tuple__63;
+static PyObject *__pyx_tuple__64;
+static PyObject *__pyx_tuple__65;
+static PyObject *__pyx_tuple__66;
+static PyObject *__pyx_tuple__67;
+static PyObject *__pyx_tuple__68;
+static PyObject *__pyx_tuple__69;
+static PyObject *__pyx_tuple__70;
+static PyObject *__pyx_tuple__71;
+static PyObject *__pyx_tuple__72;
+static PyObject *__pyx_tuple__74;
+static PyObject *__pyx_codeobj__73;
+static PyObject *__pyx_codeobj__75;
+
+/* "_yaml.pyx":4
+ * import yaml
+ * 
+ * def get_version_string():             # <<<<<<<<<<<<<<
+ *     cdef char *value
+ *     value = yaml_get_version_string()
+ */
+
+/* Python wrapper */
+static PyObject *__pyx_pw_5_yaml_1get_version_string(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
+static PyMethodDef __pyx_mdef_5_yaml_1get_version_string = {__Pyx_NAMESTR("get_version_string"), (PyCFunction)__pyx_pw_5_yaml_1get_version_string, METH_NOARGS, __Pyx_DOCSTR(0)};
+static PyObject *__pyx_pw_5_yaml_1get_version_string(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
+  PyObject *__pyx_r = 0;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("get_version_string (wrapper)", 0);
+  __pyx_r = __pyx_pf_5_yaml_get_version_string(__pyx_self);
+
+  /* function exit code */
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+static PyObject *__pyx_pf_5_yaml_get_version_string(CYTHON_UNUSED PyObject *__pyx_self) {
+  char *__pyx_v_value;
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  int __pyx_t_1;
+  PyObject *__pyx_t_2 = NULL;
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+  __Pyx_RefNannySetupContext("get_version_string", 0);
+
+  /* "_yaml.pyx":6
+ * def get_version_string():
+ *     cdef char *value
+ *     value = yaml_get_version_string()             # <<<<<<<<<<<<<<
+ *     if PY_MAJOR_VERSION < 3:
+ *         return value
+ */
+  __pyx_v_value = yaml_get_version_string();
+
+  /* "_yaml.pyx":7
+ *     cdef char *value
+ *     value = yaml_get_version_string()
+ *     if PY_MAJOR_VERSION < 3:             # <<<<<<<<<<<<<<
+ *         return value
+ *     else:
+ */
+  __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0);
+  if (__pyx_t_1) {
+
+    /* "_yaml.pyx":8
+ *     value = yaml_get_version_string()
+ *     if PY_MAJOR_VERSION < 3:
+ *         return value             # <<<<<<<<<<<<<<
+ *     else:
+ *         return PyUnicode_FromString(value)
+ */
+    __Pyx_XDECREF(__pyx_r);
+    __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_value); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_r = __pyx_t_2;
+    __pyx_t_2 = 0;
+    goto __pyx_L0;
+  }
+  /*else*/ {
+
+    /* "_yaml.pyx":10
+ *         return value
+ *     else:
+ *         return PyUnicode_FromString(value)             # <<<<<<<<<<<<<<
+ * 
+ * def get_version():
+ */
+    __Pyx_XDECREF(__pyx_r);
+    __pyx_t_2 = PyUnicode_FromString(__pyx_v_value); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_r = __pyx_t_2;
+    __pyx_t_2 = 0;
+    goto __pyx_L0;
+  }
+
+  /* "_yaml.pyx":4
+ * import yaml
+ * 
+ * def get_version_string():             # <<<<<<<<<<<<<<
+ *     cdef char *value
+ *     value = yaml_get_version_string()
+ */
+
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_AddTraceback("_yaml.get_version_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = NULL;
+  __pyx_L0:;
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* "_yaml.pyx":12
+ *         return PyUnicode_FromString(value)
+ * 
+ * def get_version():             # <<<<<<<<<<<<<<
+ *     cdef int major, minor, patch
+ *     yaml_get_version(&major, &minor, &patch)
+ */
+
+/* Python wrapper */
+static PyObject *__pyx_pw_5_yaml_3get_version(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
+static PyMethodDef __pyx_mdef_5_yaml_3get_version = {__Pyx_NAMESTR("get_version"), (PyCFunction)__pyx_pw_5_yaml_3get_version, METH_NOARGS, __Pyx_DOCSTR(0)};
+static PyObject *__pyx_pw_5_yaml_3get_version(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
+  PyObject *__pyx_r = 0;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("get_version (wrapper)", 0);
+  __pyx_r = __pyx_pf_5_yaml_2get_version(__pyx_self);
+
+  /* function exit code */
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+static PyObject *__pyx_pf_5_yaml_2get_version(CYTHON_UNUSED PyObject *__pyx_self) {
+  int __pyx_v_major;
+  int __pyx_v_minor;
+  int __pyx_v_patch;
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  PyObject *__pyx_t_1 = NULL;
+  PyObject *__pyx_t_2 = NULL;
+  PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+  __Pyx_RefNannySetupContext("get_version", 0);
+
+  /* "_yaml.pyx":14
+ * def get_version():
+ *     cdef int major, minor, patch
+ *     yaml_get_version(&major, &minor, &patch)             # <<<<<<<<<<<<<<
+ *     return (major, minor, patch)
+ * 
+ */
+  yaml_get_version((&__pyx_v_major), (&__pyx_v_minor), (&__pyx_v_patch));
+
+  /* "_yaml.pyx":15
+ *     cdef int major, minor, patch
+ *     yaml_get_version(&major, &minor, &patch)
+ *     return (major, minor, patch)             # <<<<<<<<<<<<<<
+ * 
+ * #Mark = yaml.error.Mark
+ */
+  __Pyx_XDECREF(__pyx_r);
+  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_major); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_minor); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_patch); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
+  __Pyx_GIVEREF(__pyx_t_1);
+  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_3);
+  __pyx_t_1 = 0;
+  __pyx_t_2 = 0;
+  __pyx_t_3 = 0;
+  __pyx_r = __pyx_t_4;
+  __pyx_t_4 = 0;
+  goto __pyx_L0;
+
+  /* "_yaml.pyx":12
+ *         return PyUnicode_FromString(value)
+ * 
+ * def get_version():             # <<<<<<<<<<<<<<
+ *     cdef int major, minor, patch
+ *     yaml_get_version(&major, &minor, &patch)
+ */
+
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_AddTraceback("_yaml.get_version", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = NULL;
+  __pyx_L0:;
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* "_yaml.pyx":72
+ *     cdef readonly pointer
+ * 
+ *     def __init__(self, object name, int index, int line, int column,             # <<<<<<<<<<<<<<
+ *             object buffer, object pointer):
+ *         self.name = name
+ */
+
+/* Python wrapper */
+static int __pyx_pw_5_yaml_4Mark_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static int __pyx_pw_5_yaml_4Mark_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+  PyObject *__pyx_v_name = 0;
+  int __pyx_v_index;
+  int __pyx_v_line;
+  int __pyx_v_column;
+  PyObject *__pyx_v_buffer = 0;
+  PyObject *__pyx_v_pointer = 0;
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+  int __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
+  {
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_index,&__pyx_n_s_line,&__pyx_n_s_column,&__pyx_n_s_buffer,&__pyx_n_s_pointer,0};
+    PyObject* values[6] = {0,0,0,0,0,0};
+    if (unlikely(__pyx_kwds)) {
+      Py_ssize_t kw_args;
+      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
+      switch (pos_args) {
+        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
+        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
+        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+        case  0: break;
+        default: goto __pyx_L5_argtuple_error;
+      }
+      kw_args = PyDict_Size(__pyx_kwds);
+      switch (pos_args) {
+        case  0:
+        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
+        else goto __pyx_L5_argtuple_error;
+        case  1:
+        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_index)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        }
+        case  2:
+        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_line)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        }
+        case  3:
+        if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_column)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        }
+        case  4:
+        if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_buffer)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        }
+        case  5:
+        if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pointer)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        }
+      }
+      if (unlikely(kw_args > 0)) {
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      }
+    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
+      goto __pyx_L5_argtuple_error;
+    } else {
+      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
+      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
+    }
+    __pyx_v_name = values[0];
+    __pyx_v_index = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_index == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_line = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_line == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_column = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_column == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_buffer = values[4];
+    __pyx_v_pointer = values[5];
+  }
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L5_argtuple_error:;
+  __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __pyx_L3_error:;
+  __Pyx_AddTraceback("_yaml.Mark.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __Pyx_RefNannyFinishContext();
+  return -1;
+  __pyx_L4_argument_unpacking_done:;
+  __pyx_r = __pyx_pf_5_yaml_4Mark___init__(((struct __pyx_obj_5_yaml_Mark *)__pyx_v_self), __pyx_v_name, __pyx_v_index, __pyx_v_line, __pyx_v_column, __pyx_v_buffer, __pyx_v_pointer);
+
+  /* function exit code */
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+static int __pyx_pf_5_yaml_4Mark___init__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self, PyObject *__pyx_v_name, int __pyx_v_index, int __pyx_v_line, int __pyx_v_column, PyObject *__pyx_v_buffer, PyObject *__pyx_v_pointer) {
+  int __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("__init__", 0);
+
+  /* "_yaml.pyx":74
+ *     def __init__(self, object name, int index, int line, int column,
+ *             object buffer, object pointer):
+ *         self.name = name             # <<<<<<<<<<<<<<
+ *         self.index = index
+ *         self.line = line
+ */
+  __Pyx_INCREF(__pyx_v_name);
+  __Pyx_GIVEREF(__pyx_v_name);
+  __Pyx_GOTREF(__pyx_v_self->name);
+  __Pyx_DECREF(__pyx_v_self->name);
+  __pyx_v_self->name = __pyx_v_name;
+
+  /* "_yaml.pyx":75
+ *             object buffer, object pointer):
+ *         self.name = name
+ *         self.index = index             # <<<<<<<<<<<<<<
+ *         self.line = line
+ *         self.column = column
+ */
+  __pyx_v_self->index = __pyx_v_index;
+
+  /* "_yaml.pyx":76
+ *         self.name = name
+ *         self.index = index
+ *         self.line = line             # <<<<<<<<<<<<<<
+ *         self.column = column
+ *         self.buffer = buffer
+ */
+  __pyx_v_self->line = __pyx_v_line;
+
+  /* "_yaml.pyx":77
+ *         self.index = index
+ *         self.line = line
+ *         self.column = column             # <<<<<<<<<<<<<<
+ *         self.buffer = buffer
+ *         self.pointer = pointer
+ */
+  __pyx_v_self->column = __pyx_v_column;
+
+  /* "_yaml.pyx":78
+ *         self.line = line
+ *         self.column = column
+ *         self.buffer = buffer             # <<<<<<<<<<<<<<
+ *         self.pointer = pointer
+ * 
+ */
+  __Pyx_INCREF(__pyx_v_buffer);
+  __Pyx_GIVEREF(__pyx_v_buffer);
+  __Pyx_GOTREF(__pyx_v_self->buffer);
+  __Pyx_DECREF(__pyx_v_self->buffer);
+  __pyx_v_self->buffer = __pyx_v_buffer;
+
+  /* "_yaml.pyx":79
+ *         self.column = column
+ *         self.buffer = buffer
+ *         self.pointer = pointer             # <<<<<<<<<<<<<<
+ * 
+ *     def get_snippet(self):
+ */
+  __Pyx_INCREF(__pyx_v_pointer);
+  __Pyx_GIVEREF(__pyx_v_pointer);
+  __Pyx_GOTREF(__pyx_v_self->pointer);
+  __Pyx_DECREF(__pyx_v_self->pointer);
+  __pyx_v_self->pointer = __pyx_v_pointer;
+
+  /* "_yaml.pyx":72
+ *     cdef readonly pointer
+ * 
+ *     def __init__(self, object name, int index, int line, int column,             # <<<<<<<<<<<<<<
+ *             object buffer, object pointer):
+ *         self.name = name
+ */
+
+  /* function exit code */
+  __pyx_r = 0;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* "_yaml.pyx":81
+ *         self.pointer = pointer
+ * 
+ *     def get_snippet(self):             # <<<<<<<<<<<<<<
+ *         return None
+ * 
+ */
+
+/* Python wrapper */
+static PyObject *__pyx_pw_5_yaml_4Mark_3get_snippet(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
+static PyObject *__pyx_pw_5_yaml_4Mark_3get_snippet(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
+  PyObject *__pyx_r = 0;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("get_snippet (wrapper)", 0);
+  __pyx_r = __pyx_pf_5_yaml_4Mark_2get_snippet(((struct __pyx_obj_5_yaml_Mark *)__pyx_v_self));
+
+  /* function exit code */
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+static PyObject *__pyx_pf_5_yaml_4Mark_2get_snippet(CYTHON_UNUSED struct __pyx_obj_5_yaml_Mark *__pyx_v_self) {
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("get_snippet", 0);
+
+  /* "_yaml.pyx":82
+ * 
+ *     def get_snippet(self):
+ *         return None             # <<<<<<<<<<<<<<
+ * 
+ *     def __str__(self):
+ */
+  __Pyx_XDECREF(__pyx_r);
+  __Pyx_INCREF(Py_None);
+  __pyx_r = Py_None;
+  goto __pyx_L0;
+
+  /* "_yaml.pyx":81
+ *         self.pointer = pointer
+ * 
+ *     def get_snippet(self):             # <<<<<<<<<<<<<<
+ *         return None
+ * 
+ */
+
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_Ref