| changeset 0: | cc367abb080e |
|---|---|
| child 1: | dfd377175b83 |
| child 6: | 5f66dad05f6b |
| author: | root |
| date: | Wed Apr 26 10:48:09 2006 +0000 (2 years ago) |
| files: | .hgignore ChangeLog DEPENDS MANIFEST.in README SUGGESTS __init__.py __pkginfo__.py bin/mkdoc bin/py2dbk bin/trf-session bin/xml2dbk debian/changelog debian/compat debian/control debian/copyright debian/logilab-doctools-test.dirs debian/logilab-doctools.dirs debian/logilab-doctools.docs debian/logilab-doctools.examples debian/logilab-doctools.postinst debian/logilab-doctools.prerm debian/rules debian/watch doc/makefile doc/manuel_utilisateur.txt doc/spec-mkdoc.pdf doc/user_manual.txt editor.py examples/mkdocrc mkview.py py2db.py rest_docbook.py setup.cfg setup.py test/runtests.py test/unittest_transformer.py test/validation_tests.py transform.py transformer.py xmlformat.py |
| description: | forget the past. forget the past. |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,4 @@ +(^|/)\.svn($|/) +(^|/)\.hg($|/) +(^|/)\.hgtags($|/) +^log$
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ChangeLog Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,35 @@ +Changelog for doctools +----------------------- + +2005-12-05 -- 0.1.6 + * added fragment writer + * bugfixes + +2005-07-18 -- 0.1.5 + * remove deprecated mkview example (close #8813) + * changed dependency from libfop-java to fop + * print external tools output in non quiet mode + + +2005-03-30 -- 0.1.4 + * added english documentation, dropped the mkview part + * packaging fixes: added missing executable script py2dbk and xml2dbk + + + +2005-03-29 -- 0.1.3 + * rename xml2db and py2db scripts into xml2dbk and py2dbk + * first public release + + + +2004-06-03 -- 0.1.2 + * Fix bug with xmlproc_parse with UTF-8 files. + + + +2004-06-01 -- 0.1.1 + * First release. + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DEPENDS Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,3 @@ +python-xml +fop +xsltproc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MANIFEST.in Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,11 @@ +include README +include ChangeLog +include DEPENDS +include SUGGESTS +include bin/mkdoc +include bin/mkview +include bin/py2dbk +include bin/xml2dbk + +recursive-include doc * +recursive-include examples *
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,5 @@ +logilab doctools +================ + + +Outils Logilab pour la production de documents. \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SUGGESTS Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,1 @@ +logilab-xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/__init__.py Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,30 @@ +# Copyright (c) 2000-2003 LOGILAB S.A. (Paris, FRANCE). +# http://www.logilab.fr/ -- mailto:contact@logilab.fr +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +""" +doctools is a python package to transform xml files into fo, pdf or html files +""" + +__revision__ = "$Id: __init__.py,v 1.2 2004-05-27 13:26:45 sand Exp $" + +try: + false = False +except NameError: + false = None + +true = (not false) + +__builtins__['false'] = false +__builtins__['true'] = true
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/__pkginfo__.py Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,43 @@ +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +""" Copyright (c) 2003-2005 LOGILAB S.A. (Paris, FRANCE). +http://www.logilab.fr/ -- mailto:contact@logilab.fr +""" + +__revision__ = "$Id: __pkginfo__.py,v 1.18 2005-12-05 12:35:30 arthur Exp $" + +modname = "doctools" +numversion = (0, 1, 6) +version = '.'.join([str(num) for num in numversion]) + +license = 'GPL' +copyright = '''Copyright (c) 2003-2005 LOGILAB S.A. (Paris, FRANCE). +http://www.logilab.fr/ -- mailto:contact@logilab.fr''' + +author = "Logilab" +author_email = "devel@logilab.fr" +scripts = ['bin/mkdoc', 'bin/py2dbk', 'bin/xml2dbk'] + +short_desc = "tools used at Logilab to make documents" +long_desc = "Set of tools to help writing documents." +web = "http://www.logilab.org/projects/doctools" +ftp = "ftp://ftp.logilab.org/pub/doctools" +mailinglist = "mailto://management-projects@logilab.org" + +subpackage_of = 'logilab' + +debian_name = 'logilab-doctools' +debian_maintainer = 'Alexandre Fayolle ' +debian_maintainer_email = 'alexandre.fayolle@logilab.fr' +pyversions = ["2.3", "2.4"] +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/mkdoc Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,7 @@ +#!/usr/bin/env python +# -*- coding: ISO-8859-1 -*- + +from logilab.doctools import transform +import sys +sys.exit(transform.run(sys.argv[1:])) +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/py2dbk Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,6 @@ +#!/usr/bin/env python + +from logilab.doctools import py2db +import sys +py2db.run(sys.argv[1:]) +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/trf-session Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,58 @@ +#!/usr/bin/env python +# -*- coding: ISO-8859-1 -*- + +import sys +from os import system + +USAGE = """ +Produire les conventions de formation (fichiers xml-docbook) : + format-session conv fichier-session.xml + +Produire la liste de présence (fichier pdf) : + format-session pres fichier-session.xml + +Produire les feuilles d'évaluation (fichier pdf) : + format-session eval fichier-session.xml + +Produire les certificats de formation (fichiers xml-docbook) : + format-session cert fichier-session.xml +""" + +xslt_dir = "/usr/share/sgml/logilab-xml/stylesheet/others" + +xslts = { 'conv': "%s/session2conv-form-dcbk.xsl" %xslt_dir, + 'pres': "%s/session2liste-pres-fo.xsl" %xslt_dir, + 'eval': "%s/session2eval-fo.xsl" %xslt_dir, + 'cert': "%s/session2certif-form-dcbk.xsl" %xslt_dir, + } + +if __name__ == '__main__' : + if len(sys.argv) != 3 : + print USAGE + sys.exit(1) + + if sys.argv[1] == 'conv' : + line = "xsltproc %s %s" %(xslts['conv'],sys.argv[2]) + system(line) + + elif sys.argv[1] == 'pres' : + line = "xsltproc --output liste-presence.fo %s %s" %(xslts['pres'],sys.argv[2]) + system(line) + line = "/home/logilab/bin/fop liste-presence.fo liste-presence.pdf" + system(line) + system("rm liste-presence.fo") + + elif sys.argv[1] == 'eval' : + line = "xsltproc --output evaluations.fo %s %s" %(xslts['eval'],sys.argv[2]) + system(line) + line = "/home/logilab/bin/fop evaluations.fo evaluations.pdf" + system(line) + system("rm evaluations.fo") + + elif sys.argv[1] == 'cert' : + line = "xsltproc %s %s" %(xslts['cert'],sys.argv[2]) + system(line) + + else : + print USAGE + sys.exit(1)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/xml2dbk Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,7 @@ +#!/usr/bin/env python + +from logilab.doctools import xmlformat +import sys + +xmlformat.run(sys.argv[1:]) +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/changelog Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,66 @@ +logilab-doctools (0.1.6-4) unstable; urgency=low + + * Added missing dependency on logilab-common + * Updated debhelper build dep to 5.0.0 and compat mode accordingly + + -- Alexandre Fayolle <afayolle@debian.org> Mon, 27 Feb 2006 14:32:37 +0100 + +logilab-doctools (0.1.6-3) unstable; urgency=low + + * fixed dangerous postrm script + + -- Alexandre Fayolle <afayolle@debian.org> Thu, 16 Feb 2006 17:20:26 +0100 + +logilab-doctools (0.1.6-2) unstable; urgency=low + + * reorganization to install into site-python, removing the need for + pythonX.X- packages + + -- Sylvain Thénault <sylvain.thenault@logilab.fr> Mon, 23 Jan 2006 16:35:02 +0100 + +logilab-doctools (0.1.6-1) unstable; urgency=low + + * new upstream release + + -- Arthur Lutz <arthur.lutz@logilab.fr> Mon, 5 Dec 2005 13:33:28 +0100 + +logilab-doctools (0.1.5-1) unstable; urgency=low + + * new upstream release + * depends on fop instead of libfop-java + * python-logilab-doctools has been renamed to logilab-doctools + + -- Sylvain Thénault <sylvain.thenault@logilab.fr> Mon, 18 Jul 2005 15:24:17 +0200 + +logilab-doctools (0.1.4-1) unstable; urgency=low + + * new upstream release + * added home page to packages description + * added watch file + + -- Sylvain Thénault <sylvain.thenault@logilab.fr> Wed, 30 Mar 2005 11:17:26 +0200 + +logilab-doctools (0.1.3-1) unstable; urgency=low + + * new upstream release + + -- Sylvain Thénault <sylvain.thenault@logilab.fr> Tue, 29 Mar 2005 13:56:25 +0200 + +logilab-doctools (0.1.2-1) unstable; urgency=low + + * Fix bug with xmlproc_parse for UTF-8 files. + + -- Sandrine Ribeau <sand@logilab.fr> Thu, 3 Jun 2004 15:58:08 +0200 + +logilab-doctools (0.1.1-1) unstable; urgency=low + + * Changes package name. Becomes logilab-doctools instead of doctools. + + -- Sandrine Ribeau <sand@logilab.fr> Tue, 1 Jun 2004 13:36:57 +0200 + +logilab-doctools (0.1.0-1) unstable; urgency=low + + * First release. + + -- Sandrine Ribeau <sand@logilab.fr> Thu, 27 May 2004 15:09:21 +0200 +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/compat Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,1 @@ +5
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/control Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,19 @@ +Source: logilab-doctools +Section: python +Priority: optional +Maintainer: Alexandre Fayolle <alexandre.fayolle@logilab.fr> +Build-Depends: debhelper (>= 5.0.0), python-dev +Standards-Version: 3.6.2 + +Package: logilab-doctools +Architecture: all +Suggests: logilab-xml +Depends: python, python-xml, fop, xsltproc, python-logilab-common (>= 0.13.1-4) +Provides: python2.3-logilab-doctools, python2.4-logilab-doctools +Conflicts: python2.3-logilab-doctools, python2.4-logilab-doctools +Replaces: python2.3-logilab-doctools, python2.4-logilab-doctools +Description: tools used at Logilab to make documents + Set of tools to help writing documents. + . + Homepage: http://www.logilab.org/projects/doctools +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/copyright Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,28 @@ +This package was debianized by Alexandre Fayolle <alexandre.fayolle@logilab.fr> Sat, 13 Apr 2002 19:05:23 +0200. + +It was downloaded from ftp://ftp.logilab.org/pub/doctools + +Upstream Author: + + Logilab <devel@logilab.fr> + +Copyright: + +Copyright (c) 2003-2005 LOGILAB S.A. (Paris, FRANCE). +http://www.logilab.fr/ -- mailto:contact@logilab.fr + +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation; either version 2 of the License, or (at your option) any later +version. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +this program; if not, write to the Free Software Foundation, Inc., +51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +On Debian systems, the complete text of the GNU General Public License +may be found in '/usr/share/common-licenses/GPL'.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/logilab-doctools-test.dirs Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,2 @@ +usr/share/doc/logilab-doctools/ +usr/share/doc/logilab-doctools/test
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/logilab-doctools.dirs Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,6 @@ +usr/lib/site-python +usr/lib/site-python/logilab +usr/lib/site-python/logilab/doctools +usr/share/doc/logilab-doctools +usr/share/doc/logilab-doctools +usr/share/doc/logilab-doctools/test
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/logilab-doctools.docs Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,5 @@ +doc/user_manual.html +doc/manuel_utilisateur.html +doc/manuel_utilisateur.txt +doc/user_manual.txt +doc/spec-mkdoc.pdf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/logilab-doctools.examples Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,1 @@ +examples/*
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/logilab-doctools.postinst Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,26 @@ +#! /bin/sh -e +# + + +touch /usr/lib/site-python/logilab/__init__.py + + +# precompile python files +VERSION=2.3 +PACKAGEDIR=/usr/lib/site-python/logilab/doctools +case "$1" in + configure|abort-upgrade|abort-remove|abort-deconfigure) + python$VERSION -O /usr/lib/python$VERSION/compileall.py -q $PACKAGEDIR + python$VERSION /usr/lib/python$VERSION/compileall.py -q $PACKAGEDIR + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + + +#DEBHELPER# + +exit 0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/logilab-doctools.prerm Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,14 @@ +#! /bin/sh -e +# + +# remove .pyc and .pyo files +dpkg --listfiles logilab-doctools | + awk '$0~/\.py$/ {print $0"c\n" $0"o"}' | + xargs rm -f >&2 + + + + +#DEBHELPER# + +exit 0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/rules Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,79 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. +# +# adapted by Logilab for automatic generation by debianize +# (part of the devtools project, http://www.logilab.org/projects/devtools) +# +# Copyright (c) 2003-2005 LOGILAB S.A. (Paris, FRANCE). +# http://www.logilab.fr/ -- mailto:contact@logilab.fr + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +build: build-stamp +build-stamp: + dh_testdir + python setup.py -q build + touch build-stamp + +clean: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + rm -rf build + find . -name "*.pyc" | xargs rm -f + rm -f changelog.gz + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + python setup.py -q install_lib --no-compile --install-dir=debian/logilab-doctools/usr/lib/site-python + python setup.py -q install_headers --install-dir=debian/logilab-doctools/usr/include/ + python setup.py -q install_scripts --install-dir=debian/logilab-doctools/usr/bin/ + # remove sub-package __init__ file (created in postinst) + rm debian/logilab-doctools/usr/lib/site-python/logilab/__init__.py + # remove test directory (installed in a separated package) + rm -rf debian/logilab-doctools/usr/lib/site-python/logilab/doctools/test + if head -1 debian/logilab-doctools/usr/bin/mkdoc | grep "^#! */usr/bin" | grep "python" >/dev/null ; then \ + sed -i "s@^#! */usr/bin/env \+python\$$@#!/usr/bin/python@" debian/logilab-doctools/usr/bin/mkdoc; \ + fi + chmod a+x debian/logilab-doctools/usr/bin/mkdoc + if head -1 debian/logilab-doctools/usr/bin/py2dbk | grep "^#! */usr/bin" | grep "python" >/dev/null ; then \ + sed -i "s@^#! */usr/bin/env \+python\$$@#!/usr/bin/python@" debian/logilab-doctools/usr/bin/py2dbk; \ + fi + chmod a+x debian/logilab-doctools/usr/bin/py2dbk + if head -1 debian/logilab-doctools/usr/bin/xml2dbk | grep "^#! */usr/bin" | grep "python" >/dev/null ; then \ + sed -i "s@^#! */usr/bin/env \+python\$$@#!/usr/bin/python@" debian/logilab-doctools/usr/bin/xml2dbk; \ + fi + chmod a+x debian/logilab-doctools/usr/bin/xml2dbk + # install tests + (cd test && find . -type f -not \( -path '*/CVS/*' -or -name '*.pyc' \) -exec install -D --mode=644 {} ../debian/logilab-doctools/usr/share/doc/logilab-doctools/test/{} \;) + + +# Build architecture-independent files here. +binary-indep: build install + dh_testdir + dh_testroot + dh_install -i + gzip -9 -c ChangeLog > changelog.gz + dh_installchangelogs -i + dh_installexamples -i + dh_installdocs -i README changelog.gz + dh_installman -i + dh_link -i + dh_compress -i -X.py -X.ini -X.xml -Xtest + dh_fixperms -i + dh_installdeb -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + + + +binary: binary-indep +.PHONY: build clean binary binary-indep +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/watch Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,3 @@ +version=2 +ftp://ftp.logilab.org/pub/doctools/doctools-(.*)\.tar\.gz debian uupdate +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/makefile Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,15 @@ +MKHTML=mkdoc --target=html --stylesheet=single-file +MKHTML_OPT=--param toc.section.depth=1 + +SRC=. + +TXTFILES:= $(wildcard *.txt) +TARGET := $(TXTFILES:.txt=.html) + +all: ${TARGET} + +%.html: %.txt + ${MKHTML} ${MKHTMLOPTS} $< + +clean: + rm -f *.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/manuel_utilisateur.txt Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,133 @@ +Manuel utilisateur +================== + +:Author: Sylvain Thénault +:Organization: Logilab +:Version: $Revision: 1.1 $ +:Date: $Date: 2005-03-29 14:24:04 $ +:Abstract: + Manuel pour l'utilisateur des outils de documentations de + Logilab. + + +py2dbk +------ + +Description +``````````` +Formate un script Python afin de pouvoir l'inclure dans un document Docbook. + +Synopsis +```````` +:: + + USAGE: py2dbk [OPTIONS] <input.py>... + + OPTIONS: + -h / --help + display this help message and exit + + -r / --root "rootstring" + insert "rootstring" as root + + -f / --format <OUTPUT_FORMAT> + set output format. Default to docbook. + Available formats are docbook, extended-docbook. + + -s / --stdout + write results to standard output + +Exemple +``````` +:: + + py2dbk --format extended-docbook monfichier.py + +Cet exemple produira en sortie un fichier monfichier.xml. + + +xml2dbk +------- + +Description +``````````` +Formatte un fichier XML afin de pouvoir l'inclure dans un document Docbook. Il +est également possible d'obtenir une sortie HTML (colorisée) + +Synopsis +```````` +:: + + USAGE: xml2dbk [OPTIONS] <input.xml>... + + OPTIONS: + -h / --help + display this help message and exit + + -o / --output <OUTPUT_FILE> + write results in file <OUTPUT_FILE>. + -s / --stdout + write results to standard output. + -e / --encoding iso-8859-1 + specify encoding to use in outputs. + + -n / --no-head + do not insert output headers. + + -f / --format <OUTPUT_FORMAT> + set output format. Default to docbook. + Available formats are docbook, extended-docbook, html. + +Exemple +``````` +:: + + xml2dbk --format extended-docbook monfichier.xml + +Cet exemple produira en sortie un fichier monfichier_dcbk.xml. + + +mkdoc +----- + +Description +``````````` +Convertit des fichiers au format ReST_ (Restructured Text) ou Docbook_ dans +divers formats tels que html ou pdf. + +Synopsis +```````` +:: + + USAGE: mkdoc [OPTIONS] <input file>... + + OPTIONS: + -h / --help + display this help message and exit + + -f / --format <OUTPUT_FORMAT> + set output format. Default to html. + Available formats are docbook, html, multi_html, pdf, pdf_ao, pdf_iup, pdf_manual, pdf_psyc, site_html. + + -n / --noverif + doesn't verify XML correctness. + -k / --keep-tmp + doesn't remove temporary directory where transforms are done. + + -p / --parameter <NAME>:<VALUE> + sets the <NAME> stylesheet parameter to <VALUE>. You may set this option + multiple times. Parameters are given to the xslt processor. + +Exemple +``````` +:: + + mkdoc --format pdf monfichier.rst unautrefichier.xml + +Cet exemple produira en sortie 2 fichiers : monfichier.pdf et +unautrefichier.pdf. + + + +.. _ReST: http://docutils.sourceforge.net/rst.html +.. _Docbook: http://www.docbook.org \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/spec-mkdoc.pdf Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,299 @@ +%PDF-1.3 +%ª«¬ +4 0 obj +<< /Type /Info +/Producer (FOP 0.20.5) >> +endobj +5 0 obj +<< /Length 620 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +GasJPhf$st&BE]"=87bUd$r?G@XCmmK;"u2K/E_(Q%ptd-Ypg*-)LW*cC36X8egrlZ$"sMS\Jgp<>&TmE.SKH8[]55s3c^dV[*TO59q]_aTXse^_J(c5oqA2o#^%[a!mE2V4D/&KK2`J:Qg*K3'?0r$n=QP%&E@)I^dZ$@SuR\+2@_cdrj3VHU,Jr9fFjS.8$f@1;CS02S+r@o\5r%;q))<K%LA;@Q6'ag3$.=BW9((/>KDr<RT4V^o.$m'pk<^q-BTPf0VXApUX+idi"KDN7QP%K"<SJ"09OJc<!rZJc8RN:3#F2.1a;KJ:4[&Hn?!\](<r/`gD7\o_nWX4ne,'>)a=@"WPAbb"c?H<6c+>>1cC`<#.H<3#j&*??Xuh#2G<IBc9n7?u`e5k(Z:][J;.2]1Y:lc0(`W)rq7H:>jM0L3g54P7[b@U!iM.>,TpJ1J>S&d]s#9TNhjkem31ng2,r/fCL*YGDktO-kI)*Y7T;#=l0JYb[Y9)QQV51Bb=Y+(.^WRa5ZFGXHsp;HU+iVadKb=k*USmX+%CSh:<7YQ7p(9f`^moJ$Z=pDQC2$AU^T:=Ur7V(ld>k`Ug/iX-aZ1Qln^G&@)VsPc6n>5B6BIc2~> +endstream +endobj +6 0 obj +<</Type /XObject +/Subtype /Image +/Name /Im1 +/Length 21819 +/Width 357 +/Height 165 +/BitsPerComponent 8 +/ColorSpace /DeviceRGB +/Filter [ /ASCII85Decode /FlateDecode ] +>> +stream +Gb"/L$(Ou6[5Znte$HnBbQ>us+:9#Ug]1h\FtkU_@at0@N'>#&-%:`G0n^sb4bt!bU5AF9N64ML-ZOu9?As]=Lk7l'&Ju8q(^:23IAUY'X7+hJpRZ_Lh5.`=T"WFQIQ_mmhl^2,3WD/'<7NG;,kW"3(k3bBm2pe.s0?T38ba,d!8k!dU^3/08Q%Jp7I!lM7hFUsoP=Cc%9<1o0[mbrE"ULdFAO8/8WqSPKX-ZuY<iJhG?G&KNY),L8k"DD_@0\3,Y:nC,qf(g82qS!7`*D$d`B97/9$P**+TNU=adjOa\u+A$QN$X$IuFQ!1nu'd&\Kt8<VJ^M457meN_I0gq\MAbl9gf\q+^FU\q<:%__kBb1C:r[!2&R[K$.,g\E`hr$cF6_8<URE-!_c!f/"Z&P8.3#cVu9LkQaMdm7$Fn_aY%h"B19CdG=)WaB_f_12B6<NKgbLKUPce-tI%OsEWahP@Y.<:p<oO8A6<?bRNTr<Y)A+f'jRT4a/@EPnTICEc?5Uc'R=B@3G]7GY,hIk6O!-np)LjqFh6VkR\*?q49fOsEV98;a#PCllZBMY@po!\8MqI!Zp8hlSk/,G@r$;<OkLBh4E:>mOt&^mYe=:!6_"'g1#onL=oGY`PKpKs9Q0OsEV)Q#M":,bVXfWja#s<^<ZeE%X6G'arNE,%8q501h<PF_O1P#l@cJ_..9\qtT,:8`-[YTk\`?L,c@dd6j(m/l.T6k23TDXa(5(MsC'!Zc7X6?s"<lOsG0?Wb3npqu6:k6K$kMo(uR"Kear)=)CNle6RmOE['K%^oK7orVf@/cn6SW8<VKQM/5%d@*Q:sAW5t_p++^=J7F<*G"RqI>pud$J;\$jZN&9!0.$fS)HSS$c%c9FUimnQ;E#d?/m*XXW`d<PKYRaAs+giZj[?*o8_oG,Gn)?\iBM;>onSP@.sAZ&#]&-3$.O^H9YuK/8_o>a:c?-NG%CQsVgmE8X9^Bpa:>CdiFChC1P^mKXdUM,P1kMPr>ji4--!q'[4MdGfSbUnIML`52e=:\\=$tX"O)uR8Q,:*eSYYHJh8NMaUW^2mEbek0!)#JrL%KbqlFKb$i?o$+dZn7P12&i,WZbP.Cqh7(ou>5FOd!n`/91s?bh\<@/`MEeAUBQ=M[;?Kd95qRcr,%b^4r?#K+B>lCSL8Z)0\Ni$U+K5I^+7WO=4[lT];LqYkkR*i*d7$Q]V0RTfh:lJ@a:+\>S@,esb0lB>q?\&0dK<6na.1&kZ_]8I^+(G#M@Yk+X*p(&=On%W7qhlur?XRREK5/MpEMJk9bU:ptk'p9hb91"=4f3p/m&_:Sg^qL(5-k"!]<@h%CXO'e\Er+=b=j#_2IThke#>())!nfU^$)u(%!Y,5HBi.&oT[9$M)*a?(Kd95QM6%g2ich+LkE^'18Q(Tm'e#dr58MheKko&_?:C&'8Q$?JU,*@jOQRNSOsJ/7,5gM4(3R0"/C-kM,cM08PKG!fa<$1e<1/CI8WqeoUr)#!.!@8KoI!;;-OCUFP_>IjGS*1F6'YtJ%WGjfm0G/]@1G\\.5>JW]s/6Z(#?6TE=16,:X!ViG#\8`F]+)c]BB7)E6DC%(l<s"`Z\1:"r@n#,]uti+pu)+I*CAu*2LV(ob'),`Cc]CVdV?uO#OE5%i;mh^]k+D'FY39;l,SEXOeAu['[UrFa$C3O;&@r5snoh_=r710pu'Y-M3b5CY6aoU+Ycs7+g),KOWfje9oNes)%>fad6:Vfu4b7W[:J9f*Yf(a^nu&NdpE#GqCU6M%Z!2,NP1^LkYcN?c<onZA&I_Z!9jp#F2)imq5@0MZ$^Om`utO;W@f/Yb0J5@uZ7H9783&#b0D"9=V4(nq2^FWTcuG8]f)r8P(?n_6qm1r(Bp#?GcjK"[rk09ph3a%8!ggi`_DMYa-O5*NR=hrU%EI1Cl(NYO]*u%kkQHP[9iIW9_T;pK"<GLR-b;B_d(3QJ]ISL"gf&H\Bps*tC.u+sDsW@=;@m^H&Okg[/porQ`G*IhFW@?N',g<NGrgb*B$9Dr6Sq)[R8JMIM0K5$2ea.G<nS,Uo^Z!WmU`P<;ECO&(&@S(u2Ne@0?^I=5U,XM1J?,g?Z#d0qn<d%MIu0CV24R[A^oi_TP$#-s,90kS3)#10<OW>d[=87lK&\5Gdc(46T015&F\$4@S0VSs3=LF\F;G+kU_NX<.5!C24.]m=r)0oCkbqu&)e>m!ZhPh_OL`E*Xf@)2r#5)M5)Am;*h%8%<T2--VPp]r;)Po6"CDPO,IO:!Em1UA$NK9[pI*:p"=niCe>E,Qge]C>S\[/d]b..#R4kjR^R8Euub'eU3f,']c,9k',64?g9R"1SnC#TTnFbNi@H,@'m+Q)oD6cPI<2BoUKQ5bmm@Fc%gSZirn7E7HQh@K9Xu.P0j\iM)gLN2/?XF^h(rL%eYudEuoQGVdl&ptf$G"M!Zbhp50ik1;G0h&D)SDfT8p+^G2l\r1Y1>_%"6gOpfI$XB>f_R0aP/gO#GS^`@DN@_H?lH>3BMaRMBi?CZh$UsfhWijUg0B1u0,9#iq;c4?KojKMhKim$2:D'a8Uh@[+]+Eo;Wa//Yj@jY=P8:5hJI=/$^3HX;[>RkpH(C3)(YO3EUM(HefBT/?JT^'qQNI\:ag^9pX@c6'NUNU.=2KZefZAXO*_!CK_1f$tQqPV_*3Bj%(GT8qA#)0u)C&MI6=5_9C6@RO<EqQt/gNk5\#%Kp6n5u@GlP$%ri>)<6Id[knNKuRUVK=bF!<aO/f^S5aUbHl,P>T8Q6]%6M?tmrL$ul"0'X]e#UJ@q;S*O3>1I4S3f,R8i?C1CE$;4:a9!0,(+QLkq\KPT?%jP/88<>U1N&/)Roo1,Z*fK9>]^^DE$;2J86lAT`'T_H?bIfFU8sB/$VB_TVCgdI/cpg/eh35,d8``SKqo2%Aa*a(R>#AcXa<^X79?1#%i7"&BEqA@a>2*_C06<(@t@J$JYqm#$h!hPIJ4?.o2"appIaOg&,h0b5#e]D!Tf`7OkoMjO$dJ#"h&mtgpT!-H#%%p,[A8]h&\0OC0`4@`]91B8?Qo?`4OB>NjQ#]/Rq:Rp]q6LAYC>P$<F0NoRH[Zpm@N"lUV`uf<AWlCT1eBA#sjSKT!:9Sd#u^2T1^Pcp"6`Z_Cq`k#X_kIO2722$IG\8g(3S1P=3HSV2p0VB-!ZOua-<C5BA#/bU09iD:qs5$u'#_F7[-[tb@G?AkgGi,L7-R'n\?P2[ebG1/K=7?,m?=")9Z&bSsP#o@GSh&\21'%)+?/m:u0mA@^Rq2PI,!kcuD_,(7G6\1/Mr=Ua:R^seM#cC\<kgRoBYHFk*X_Xl7XfndDKETo88bi!]<K5nn,0s.Y&/cCT*cjD2c&bJ$:oqeu(aE5ND@%+r:Yca<J;*d?&WiF`/JBL;R$68`YAZ^U5uHP;6;-UA-Lj8^ga>2XJHt=j6J\m34+^.F_7^Tr4cGY8<Np^CkZ/eTHl%m:1e-2j\g:SeeD/ha;DQTd@Oc]rn/\rcm8;jSH9LOJ$;!f<'.-D9E7&Ak0h+--8F</=WJA8XC$?`L"Pht1QPM]C5JX#u!F,b[dU1Bnaaf;hmj25G2>%Nj(cZIgY87C*GC^-_*n?[r`PdUs-!YOqP&Sg?e3i/'d%D$T\8^nSWbG.qFC?:'MZ+Mc*C1;jg66h$>XY]_[4*A+FCp\Td@Sj_i5-02hR0t@^iKeuSY%04ZmYN3\.H:gg5.Tu0"NB$\7e\';/h(_i/-U]UdqRY\EM-^iM&K7#Jrogr@YL9/jU+&S>\"H+Q5Z(7@0km%MuR/.^n06-!X!NkgItuiIW0?DC+W''2fkX(D8@32"bgt5f,+ai]5'd<B2=08@[m3e2-%bOb'50^6.j[:M_a2>Y)BgdaU)3_FfDp@0u@d(m8iH8No"'\EFhViBhc"s0n!E0&].67@0mC!#J6AThl#^Ydld@eC7`1hg"KiF[a:.IJXLjfs5bLVTk2\CtSCQfADgZ<ua8#=^>=hf\"j)dLlrmSU@-5,7,.m0h.B-Eb89pRc-;&/kWW2W`#4>WM+7(?SN2$7QCc8bX/!/0VdOoDcS9ZVWL,d&.TY3?*mdjRDU-a[=U6QXpZ&sLk=:)n,Y*'pUAZ%e8<sKA''n1pYS4$k<K!U$SE9?o#X*54F"qt!@:0'r<ir>EcZ=!oZ>5#cHT4cYco5)0.A=f2Jh$UE>*6'p%IR@It$FtNIW_0?VK'7.#)+a6D<V5'a63@o#:?Fo2J[kgt:g,hWt*^0OUFYP(=C&Jrnn/mdRNGhhcT&SDN)1L'qdnnR(-+0#\=$;/%3RJ4:]i8OD]jA0+V9d$Jl;bsG&hKA`HV9>?1D6!qP)p"F3]o@RREJ.F<IpsScZ)tUrhrX_96N4E?opk^reI.QBZ5Pa8n+4\rn6g"f^?nEtC!_,C\G@1\_Ip`n*#G.#Wpp[nUY[mmPE#439B'D:R(EbEq%#\IqHHRnLN>QZt^sXBO\V9;4R40Sa*Xp\Ql]]$(r/S3'9#!nh9'HLdW'ZrARL5,X#Qnc3lDr+.X)"C<Kef=ZWbCj%m!.K`=0H-c)o@<2H^:XU"UJ72<O7#El=Z]6k.q9E]^)`4DS5L/&AWA54`BW8/"fUcorDF_qs9s+XBAb/f>%EK=n'8O]l"9s9C;!/Up<6(KO8Mi7RKNV.#f<so^Uq[97HWI-gnS3mci2M0l>XOl-lQJa#2IRHeWDPI.GA_s7K`KH2$.hp[$Q@6N[k/6,<f\KL3iOi.`iY5S)Gseh1=Dr;,`_5N.8/oCDJ$dP?uLN>;"H+Fq=u.TaDeR@1a^[4f,Tih]:TK0H,(QV]d]3q'T=c7?*2$>L%7]'HMgVU0FO":kT@dG2;6>eh`.dFu!8cC-Wf[*qc'aR>bdbOh1>2";>Nd1[Bt\01"/rC[#(@&LNEo[[5brV"ua"+b&`n7$%%fSgE7aeIrunG#99Bi'd$!@<8S_89BdEn)gmq>[,aTK#4t;cD-GoP!C"&`BP4Q^3oeBAgSAkFXsS,RCnNf/Gr=Jh#7'lH,'1"DWFr&4@&i\uDZCkK_ne]_q'0>s&#WiFhg6.S3G%%2Dr4:Fhf!fY;AI=q!g&TV,uNYZ%^9lC+&GH=d!Im0sL6((E19eo39#rZ$Fi0^Z?aI;m8hPL@q/H.cjM@f(+V5f?KS2WZtE,O;.hL->S7$dbTUAUa[Xs+NLsZ-mE9$Y=e4s3R%P%uPgF"Q.tg[GZW=5)f.b<il)4%o2HH3u^4dl$]B_F^uUH5S\Y3N[OdcO2D?9"W`0?.iGAc`GbJ;gD=i)]C3JoRKcbph9-cS>^/E2=>2-'^]eHhfE0URe^$DQr:&YiJCSp&Oc_JDnf!qS9ghb7+5ho9n!jER.d%/?M_0_)6LA6@fGe:=j5@a@TV@Je3P'.d!aeQS21JUq\>4@H[kttskf!aBaj'4"`YiDPo?8:,.Lq)CDHi8@gVfp@n-R[aYCHM?If0IIeQ78,NulK/DV='@X!*3),B+*\nFG\ElaF,#V]U<UU!ErS(pDl8#PO;2)BOd78Yr893+Hq$m`N6OjV%i!kZ5s00_5K*"cBr_g_slTGU>s)>9eD'<4F@A_In=Hi=f#b*XY/Zhd+]eh:9V+H?8<1,q1D37su3ChLu=R6#WVGVdhotr9t@0HH:F=OuuNDG8O?K^3_2?_MlR2>n*MMr6]E9"iW<+l$`I&h0\Uo5j8!AJPb$XTVXgfH`;0SL29dAo8\R\5c)-RN]R^l4;cNF;q*^>"_^^OC<MpFTG?DN360IM7-.HZ7?:%-o]Qc;b/Q+Bgi1/jF`hj!?(ZQ=3S.KB;:V[_S$2Xs6\h7lei225PiGfV+C(j>_*C62aiU<[WXm-Vg?CF$SGIce(Kq5^6r^KV7Yb^<JcqBmQCg9b$Bu]'QAKBh"LoI0,q(.k/mu=22<nEUc-1Rs1$b$fa"Z'IQCg>L\H-Vbhd0o;j:\0M'Q=X]Vn2X\'Ga1$3HH5C345d;<3j#k82Y\hJ;F`V@"AXTJ+C\bp%=<q5p7;f:ct/YKnI52/$Jk0WeG+<g9N>B;5'M3pn6l"lD_Z3+$P90roB9h5\1SF+Z]fCcoiX%SiDrY,X97A3CKO@)'b[$0_H_Y,Si!BU10e/JggG,kbb(EFVR:fP9E:S'Vl-G``PhPmmJXT,Nme^"%khR!&7WkIQ^pD0PK"8BfUm?'7AH?![Asee_Y`KI9d]-Toc"%a#0@A5&e>\A,+i`@1s`Rd;_kq.KM9f]7c:bRh"7ZFKe"tDqM9m[VXWK""o@h=P?9\>Hi#-c2/OU^jB%Y,ql\-ATY_.cnnE:9tO^bF8u6YQ'IWI!391NWqe7Q97*`@Mp-tXD2YeXq(B7=Fs2+.LCP=sa&W4i@tY5i3Da$KYG:V&eH#9O!+NaR':!4iJd^d4c9,?Y"M4cCMtc+Y+&kjrQ"8:&CgiD4$aFd^&$V4pqHI@-A]pA?5=b@Vl+$BQp+]$eFdnj&0>-d`H<P5qLpRm=@1"PXd]o#UFB$qDS*B1*@"eCT-9kBZKImKgc([YQU=&$FQD6/1>K^hLGV^<1kG_@tfnPQ!@#UoX1?k`-g"o:;.9pt/hZ[&3_hDrg@s`6'&Cnc(;+230<C*`M'l5T96f^Uq00(J@?_;Q!(kL#8K'!OZ'^)S:1A!XV_\j=p*o4oV+\C$89Lb3U']Mr@^G>,g4@;AmQX>30O.l(r<,2lO&3L.^%1Nb2rp_9=HJ?F*69C3:4*>0BaoaO'FY+NW"MJf"SekWc%a)SP*'0E3'U[`CGK8^^9+2%uP3GE?^kH4!#[M049e?+u_*_C0JmWr6&YKl2G>b6K.pQJCS931N<kZmkZ0K#Qdfc*WX#ikOG%X@9`l>!"AlC+U2GEH85'uu*:7T3N0($N[*RoQ$;t-$VOiJ"A9qZ,>C)rt1k/IX)YHm(3rPK.1jK-d,`eYaT\7DP3U$:?RcSMi>Es#St&T+,_r##/B+i[utgF+=nMh,.E3_%'#,f>qpFFqj;qtEHZdS;W\MEnaO`sIHq&0W=!#1&\nBB@:$TGMlQ_hZhF-P5\3&RTa6$gMV]?DG93ar$Hc5s=h&M,=W'MD0>bH*f.E2QWlRFf<F+m(IiEG*K1T[0p2na$)A#Lj9.?l4Ua/WYL_VSiuq8d*BKKPB,YSb0'!J?="4*:iL/2\DZ(9;cD/40c(s#UR4.9'SQh/Rpe_o6kV&3Tl&dsUueeaf#WuK>?Y3t*EH9B$]]HZS=h_Ln=,MbgqlB=cBOB->,(8DQBjF;_?A-6WC)k__ffCsTH+'EQA9,ZI$Cu^#4tY_8h0kZ$YhIqjd^!#U-$F'`J@'bNd:_3^`\_#>R3GCb_uhoc+c"Rl#uVAN20LLh?H4Nf0R][SiRk0e#>C:e4..[?@ZE;r9s[bIm!QAVp^!$$jrc3-"j8lR#DL^,@2@/Fg[DUZUn`Y-gRtMqWG^0M#\7>*W"Q4c_[G5+H$S:R?KTi?":S3W2E\4!cdKt&s:_lfBk,Jh$bod:-SJa"BG)-E?*o;og&8pc0\_5;?CIRkg;TtL7CAO$IC'.](!Sq_hT$E(M@;jq0YC*'2LG:Qh$goe>-"u19rfUr0NUo0FmK%k`][IWJo!e,Q#<r6fudXo=`l#@7RHAjSR@c&1q8IE3"]S6>bnt!5<mQc+!K[aeaqLON*+u;f8a4MTpbLUo'soNJVO]o>E0JG<dWq[Cu4\/%4/cJ0'8,TPr`%>aD@eLpiSI#?q$<Jh:^#'r9lC264B`W&Fh9A]hc#^r;@`oHOA_TEbi4qgj#SDr0rsrq[SJ5Jh!.,$_o#qX(cLhK.#V!sY!'LnV,-92X(X&M2^Oe#"Jq/s)^-Jm]=1KLbePf:%@1I$*=MW+r5ETN;7I/7Dhh4!bk!E4Ke-FY.\c*B/rih`R)tOUt1&CBR?7-9Rq^HpZBYINh`$0ln;#KoiMJeHOS7qIX0II8&S+KaS[ueu:<#^fabt6cs=,,m6c4RPU[hC=Mm]WY><>kfYa6M2i_+KFp]+D?C]&VXOHScc=&LcS)rqVOMbsgrV.jBYUsc"%0l@Ko:H^9PCN8Xi]Nn2-B2ipdn'!5ek'f=nX8[kE2MsY&If."euI/0^p64!!d+KkCO:&B?m#YbEi1g+9,TQB[NZC:5*/-//Z)t11S1b@J*jqUi6>Fgj\"KTodNr2Hso@hZ^CK2:l)k*Gr.fFl(h;\ecHC5/$O0X$6CD@mE9B+@o4$bqPB`?b^%7e15LK'Tl!_@cI`K%"*ZBK%<O`+4K@_A,tP&5sq:h9^6(s)<"\JSR,,hFQT!(6clOFp=_62`^$"\'`e(=mt>SG;`;X>79,qk.pRT^!Ne;.pkZ,fg;s"$`pWT*hVgDoWbOM&\;2p]SHX@Nc'l&KYDB&]fY`Ccn&PLE5G0MnX_i8=5UV18gi_6)g^e>IH4^+S[JX-<r\36*OIk%8U>iDga0T(1K(dBb9q.h#??PDabj&0`9#Xgg2FOLO\E&grlK[Z9qg*L@TWRMF)m?mAqUF"oC+Sj'-Po7k":FP$A(A!r`l/Bh!hO+[99ZB<WpQ#HPFqb`f</D*3!,)t?dOlnDVTL$V3gc+G02:0%^$Z,U72uEkX>:>dndGjh$/j/BBPh8*dnn^cXc4ah27kn43gq=kmYka5n?-N#^Mt,Yo=qIcq2pr60XY9rgVN.P-p.hbKE3#T\^Mq!m%o)8kk-t4DWO7W7-HjNZTmTQk-BT@8ph8ABRpX>t;r+_o@Qb4qOo"nV40c_UQgW4NIpVd%H[W?(.(FAl<$,$>c;mJ73leaO/R?@&Jr&2Z_NL`[)2sO1Nfp$^NR?VS7Z-AnNWd56@kp?AF%alqQoQE"P"L\ARZTB(Bl-l\\`;rMou0]A\J`S`]1l38^26]Zi=+<ksE$;47r)%k7\HIDC^L)`COq_6uCL%7B<7&SGQ"FN6#bc?@24[@2RC#"7:lbpcND7>*57.P!"O9cI(WpE$#[%$Io<l"bCc[Zuc4OdM"IM\e%dNS`1MO34iol01&_27@?'4Tu%bLFc8_>o_2rFi"G4K(UBS"Q`ka7Y$^NT3M@mBl[YTCq.9pAqiZ(*3mD)Jd7=iL!]D[$0nRgf>UmAI32g3i'J,%ZSZsX7ED*M\jkKq)<#of.7cKc7t#eKPfg@Eg\&7%@0r:4[;3OaZDEhH+"hO(2/7t(B?nH774o7N#T#Il??kEt>ZYq(,5ajI\DVsY=FQs;/>-`cGY1TNXBDlGhZC5<LS/nN!k49`mpFl.*.$!>)N&25_t3%UN`K-jLC:`VdR#';%(2%CjjN;`>2/3WBDKs0Gs$$hfKSN`]'#Z3;-g)*)7>=pm5r,(BOc1`h0\BZNFh_<j?)e>1DE30_1]E]>?Y3*55A_b%("\la`Tg"<#.;7pPp#,nc1ruh0F;A=T7OLV67pj%`Z^(UgC:EMjN@D<R`o=QH/IqipVBsLTP=PoP[-%V@l#gm'DZg(Hi]ikb'%H)q\*3VjdCqO?hA^Q9d_?'+YqTWk,pE]!bd:gh0A,qHe3aAJgWL,iDFUmFD29<HfDj$lpQ.\=i<-jZp>`)02m^X_20MZ'B0r#\<nb>Am#M\]@"bs/uM.?g,SG"_F(@kA^R[KYtdc]mDOj12s6-N=fTl8!=B^MeUY;a3lN'SH(9e_qoLac+9+cB$O8Dh:<t$5_\,n-3Tbmji?RVi,'*T&sKQK=_F:8?&!8Z\fmbV#(R"\;Cc"Rh%),kf!G>Y(iTHRneY[0bQ#3?:>eLDhb-TIp$GtFPEXV1GBRSQOtneX"="LS?t0rd'U4oLSp&h%5Ps-["q2oRE']Hbqt=++c-J&EX2Ap/5.I7W(bQuFpu4s1W3N@qmd7o^[:3Vu:\X>JeWRr+C"6X4nDL"=Y=bJVJnOkF^\e7m)qB9*&CX3*%=Dm?QK9<F7;D#GU'SDGe#)brXBmqQ3Cu0@"`SbVOsNc>Q=m:pF:`=9MqTMp1+d25:HnTmg<3H"G%(P[Q`I=(3c:Q]GD?PqP`>8)o(hn?NuBk_`aX'>:3p)I)D6WlG%qu<=F3<"k/,%*PEb-M3g?"N_kI"D63RN]>R02Xef)%Pmk[D/[(<i;ff=2GRS3G,n+QndL_I`'[C@GNIkNiF5p^^69Vd>;Ue[OG*@Ef9@COWec)5K/@5nn#hF3ol2_6f8#t%I.Rn0AMV[jlb1LnF`&Xk*^B%^o%-S%eZ`skhm^juT->6.a%UK.N`;HmA+c/H[FeT<%GYkf[@:!gKnIItp\6\jgbj8_@h-eg2rUH5NB=1r/#/EM%`K9Flb2WaCOSD&\24suc$)BChYZu)1afYb&2kMqUfkl_eDo@>qfWj'$T+6M$,/efC4;#c':FocdF)/#JU"1&@Y=DdZgf0J@D9PO`9d"_Dm[Fb(,Y8VPe"Wq;@0,6872[;TFM3<pr*PD6OfVqfI7P$b$GjE4PE0Rh+I,;!aJlrLp(s6d-jgO1.;AamT[-&]=AUl85*ig>W2P(`c@U=@$[2&oG(O"2HimfY<Dl;_I8RAXZ&$8#B$/948Nh*]+`P!$fO3QdQ?Z*J$N)HD.Jl>S]j>KQV0$L@<D4:nh"F>4TCN2q4eJ7So5Q*T6heE`l.j4bRQ^9(9YrQj3.TKcij'I1E'Z2h+(QCQUo[>es+'2b3o+t\SZ"_+3b2bl#_X7XFL4Z>t82(lcY[G:t!@;uR#ShW3E$1VW"g#N5'Xo[7\b%'hE+-C\^]&W*\el=)KkbBAdo*M7mVu+r7)S7S)DP\(<Gu^N.'[`bmLq$KU[c>^3bo+1PP0I?T,'%KpC;W:j40d!klE!&GYZ=t4rCMCFTeUZgWOuDkoS%538="nY#WN]B:jU,$>Sp&.`"`*p=V\#m4'/uFGoPr(V%CM2p1D=\6p9eqLST64o_l2.@AJr'C\D\$W-T1P6G,1!#J%2Z(*namuC`u'cF!J\j;1Q'TZaTQP5f%Qj9CK40`\(iIXG(H"M`shd6lR[BdP&)I-,+_WUM>Ia4>DN0p<B1AjSocJ<o5[8gc#LjL`G7AR_b!aMPrdO=[uZib1ck$qPd4um1cASO,Ca!mbJpZo$_Q,A;0);W!bJe>\*qt;dQ9,ba-T%/FmQ_8t.j$Mrk)IEPYd%#X'h.;g9\3O0fV.>%i\%L71J`^0BD%kMRie7cD)T3KN_Hd?ZX'P&pRI/HnO]PUqhM_7me-AlM;]DC"n\>=7=Le8%QY5LBi>QW7Hae)XEU<0V+I+e/1ZYu^rJ"j*kEjB9Lt?t(M-Ag'm+f:$pG2=h2D.oO6?VehSTir.))7?P0"UMGX)9Ye?!1K?;,l&;#)An1qF"Z?JHG"&W7lc;)r_MQf9BCIi&m=jb6#0bQm$Xik5d3"E4Dd9[P@F_NsdNj]s,4!Z#HsjlaEmr/FL.>\7ugO8Ob^=e'jug6h.XKd9MXt5B&<gDn_"HB6,Ic$9Qa(KF>e#Ie7VXC78k\ZAq3rJ!q<i(OPoEA!T.4=Fc"Ohu<=%T,]TZ^D"(Y[tG-d@k?8eK*MoAL"*HqWo+>h"dU=ZE]eYa3n$d9^(^o!:gn7M^.ig,B.o;I(GuX.1Ie`#HZ*ZPN]f*PN!gF&>UU2Xj'B-hQ;`;A>=p#C^e;+QgQ@nlagDM'\0-)B7NV/tV/j*(>gnRbK'JUC4Oba^^sgI]^7W2]S9ZMfn9hrTpJl7&Bk2F%#HT/r3@h/VNZC1b[7BFWgRH&]cThF2L)$GH,L1_e*J3bMRm6_jPod9X_)dL*ZGuK8HtC6Q!P2igH6tn$@:?q!dQo0*"8V,1rW<Q!q\Kq\jl[HRm[Xdn*^dgj`fq=MTYlk?^#?$:k58]B>q7a>`PEeHLD>U8E+?i/NKdTU(L5AlmGbp4K=SP'!i4JcL"9MIGG0(g/*E(=n(F2$PAf_h-T4e.aqqM&+C8>Z9Cqt*bLRB"Z-1\2]+(*q3o4F[p82&:>-0>]H0&$q6iuApEum3M"'bingUBt8H_?D-2EYIeqK3(o@Z`tR%i]]7/[sO/ieoIl?b`;/ic&aOI=6Mg:XIMHJ%m)T^KnJFI.>0:kc(Vc\qZ"<[H?h=&jDH#RHK8??8QR5M$#AlhnY1fNU`j2iJ]S<deCTqGmY6=>R37"!#I=eCMO-u*bfuRdH:aC37tQMY>YaE>DAPo(\"Dq&t%q39t3ris3&diIY&qSo5)UmG57lD3g!^m.p`4'(,'"R>S/n!TQT2uY^/$/UpK27Zt`Zt$Y:QklD`?LmAf"$dM0Zl9hc]mqM-/Br,H4V,OT5gk8tgq,_X/J0a,*Z(gL/ZS9pFE3G0&GST[n-$#(@H-pbhM9q*1G:_;m$kb=""=hV8.=L\?B"r':,?0Mh8f\MWqI<Cs)3NXR6l8-caOo%M9QDrLX>Eb87LO3Ddl`[IB_[`Uek\@F1(I7$thZsCqk*g(bi!WiW'^-&l,O4hg>h'_hg7`Ba(JRWKWcau,m3RdU4rWSqj-=o?]g%QAqB*u,!HX`#hor6;EFtGK+1Ug%$%8D<mab<tSL).MG(;J5gnf?7;A3T'lhg.CKj,93?CCl(!-*q\+\)O'c8t82S^gXB3>M*N:BF)?"W*,=.\Sr_MX.6?YMe/h\:WnNUX5c_dCn86c9XQ7Ca,fQ<`U<fYr7PUf@1k9?jmlKU98VF$aZf"CeTVI47A\jg]-:K`\%]:J,S]&JqM[8-T.jCE-!HW.5PV^N4RW1!]'c0^OJ!/F6oq\NY=$YcsXR('ogHuEurb3,TMgR1eb=3[V_M<2:B09?9BH./]lac^$"7,/90AI^&fiUO1%V<$JXK>(FX$AG-2`1/(WAVJNuPe""C0olf+Yg'=@/ZZ/_tT.Os`PU!>'aTWE;sKB^'Y`<p4F*$K54iIX5tGY?@&mnnF$TJ&"'^W4a0CVU*\M:'(fJ%c[174]ptTGGT"JAk`N6tmH^7Oea)8-.V\(5XEk"Xb-G7uS:9>&Mi9$*.A5W5%)n5O)I5#;4rg]#>*F5rW=1n+YcCb->I,:0?f"#'g0+0@jjR=rduhC)f@]B$$2^<hUQpEb(F)h$c@L9W?P[1?9^,plRr&m8`8[m^h/#[R`Lg%_F]*'Gm,,#K4^9G57dWEr"g`;eE7ND;/L_f>%;Zla4/))C$:9nQr?'Eq0fd+Ai'2Km,kEGMdfj_u.*`Kc9U34F=$pRu?C\kZ5S)Y:RNo2b&=@n,?(=l4XUZ4Ckc/Dl`Eg-Sc]D?,O,i9rIIOAJ6Fd2B<9@o4m9re<paWeM\PrTDnI1/Pr?l46X=/5cE"qp>hDFGknnP'FY0tSK>Z#:ak6@2f>FB"9l=!QEEu_DtiL[6c%PkA@m6!6pN[oqWO\*g/Jd*D1:<je-rO=H[S4Ii<$R;Ma8R&c:jfkpL,!?ee[S)RT<KkkN1g#=V1h7<4FVRMC3,\PTNieO&J[mV_KrPne?`bcDWG$nl)mN:sM0[o7g0+1oml=U*9ebrN9FQ0UR"tLDB%l-lWS-&Tc0jM!"*+1W"YMjX4W:M$gX\4\tZ*Ab-1;(-C$g_!6WZ+>uaI3,aE1fQT/oA[h`KiJ0_WGqNF8W(J-&`[H@q\T?rFYd_D%fHV2>Hta!ODf::UC5\KM%#(UuSH'=;rqsgIn-[r'^]jb>W&QnYi*_4%bA^$giT"[]Y^?WR"f$VE3SPH)kZ]*Un3P);@-"eK1#gT5VXdDi;)"@U'_h7KcTiJ+,%:\G5f*5Vs-W7cj(KKGf-"\4$3FHtb0.t4[r.a0QsrsId&L*H[CD@ebJUnE>Vn;q+m*:jWJB@L+cWhQ\8gP^XK9+WbkV,0gMcu]V)@ZFCg4f2a#kT!qDO:5f3NS`=9l?m`n&!.mTQr/c%#g@`if6l(6AfC,&+#Z7up\*ZHF[OE+'=cDN"joGPLZ9*_Dj$Ph'u'[,fm:1M5Ep1Rh6O'`qF[Qn^rigkW=j^1u/b-*\jS)&X<*M-+-TMdP7-%j83\Ke46?a+!L6fag2!Vlm0g%g%e4XaIu[BY(m(pYC;q*@=?D:P^_#iZ;[0MnfMgK`DqAQ!3g)ZE)KtgF0i#i;o4FWiAP(+"*Y2[e\j6&!cB_o`Q7>JF+OT[W#*EL;sn_d^j*q`kT*%MpBYsdQpYkn\gP77mKUjLf#;igX6^ND"MZ&]]Ij_Y>`_%dt@Eak>.$6nlH>D4ou7LF0^!L,s53Un#YiY^OaD.j2,RcJ0%DjX+os?!VYupEsD&kZ[OZ>F$\8l\)$3<q6[h+`7_1#ds@T,inO+j-P(56R1iq-=4_2)F5e3??fW!+R%EI)dG6R1#7l+HZ$C-:IL098d*UkJ\('![n(P>HJ!Rihjcrm^(%nKfSP_ihp-*_q:6]j3\:BLmgqGE/9eoA,_O't);kJ6el-QZCH")?`)I!-Z(LKLq3*c_8N4//ET3kDo>A*!eM@2$NG2eX,c"].J#/:#:?b_'QT7?jA=gO]Io#ZRn(XATK0X)".1uMo-G$$4#VIsHW;?kU94ae0$*0r6bmZ%os!>fjS6"T.TmdT:QXg&4&:]cPuJQ2nL(cL`F^]46S9hikd"QML1&bZ&W\-)]DHM+3!S23cs^nqZJckS4`T0VcaYJ,]n4XS\r+DdP2o[?SPN"P=n'(/]lTJ2'ZPEjZ'PXakJTL"27jl[G#NIjJ"D$j4/Mk71IlbjHlWX$V.P@E=3H&kI&]`Z"f1#gF'5Q:e>>orp8.WV%f55OL'Z"(ga'G2;7--?@nOT7!HZDnSa_tBCF%cXBVF3\Rk7<P,r3MS4,J#6Do-j,pZ7XhjG:f(+uYKbon2?2FjcpJO/fUOr4ENGgUTgEV>#08JP\=[c\=hjdWDca#bA)4`"[Vmg'^OF()DuFP0]\e\eFflcC`LEZeWM>/Y>.U0C"W:W$IJPUaK<^&g[X\=+@9u-t<G5Pq9$2d6W*X^f9,&/#O#?\>YPES8=P%_>EOZ"NdKjAL'PpXLFj\5!Pk,Uu:ZKJkr;H)V>.J\([V\*Lm+Aj[b>p;[J.G/1*,R[Qc(hKSG:UgpN1/*13?G[A!Qp?6Pas3UGtB8fC4KN5_dTAQg!#@Ao*[4aaE]rbDdd,6K"__R"jk0#_?nV%$f+u,[,!Ee4pIO=Q^85Td-8K[nY/C9/r_[`h10JsGQlF(?bZV$B4TOFW/buVH"4L1iDs4]p65kDT(<6<!d((WQkj!n4Ki<,AiG5JW0%`uJ:QZBZF6l;DfZ^FN,!m)3Uf9&#q5((3B9*a@6@RLZItufI0*J/7R4Si<oJ;sN$*o_NYJ2];$1eFmh=5V7?18W_#kT/b!IZFgtLs_AcC,`Z8-;IRYOsD!:1MWUBKgOLCcEkrQE.kImW%EFeK]oIi-<1=phV-M-9d&e^_(@HY4QRP#9#MB1&/h@,0@04>C;]ib8R@JYf)5&Zoc.JdYs34C1Y9YS4u(n;rbK\"oFCf-<O;lE9c\;@4*bd'f.S7)9%UMk_,3U^1nG>,G8o&@;g(L=$GbhDf4`Bj;FP34MbEZk6R4$[D?=7>pq$l!>!Ef+G^hcJk>4KJnBN1QBnt:sDP.9jn1C1OCggl?VT@RU1M%>MS-nHhM7aCdg6DgXq6%\fF%Q+2\_hRL+,?R@2`$2RB=u?B6I*hun79kgFFde/\\%>gm_&LmY]QORA1f$E#&F\uA#CJR6.(p];D45-dmC\UDX3*jQR\aO-GW(aHbZN3(5CD0F7,?<Z=2MA>ijl0st@oQo%TqET9QR1G/7*l@X%/r0KW9:]_>R,RWSa,:m=C9<r2WM9.!1#GAB6Kf?$5ti-tA))CrXXoq0f3/R4Vs6'EWksIRen=QIRCs@_)d.C_@e%gFJt&E+6YUB>DRc=k@KRET<Rr,_GCI&PH[^H;;,Mi.QZ0bJKEuAJU8C4^kVs2`_i>RRk)^`6Be+F<(A%0WXKT*L[?dG#(VO997X1n1I@5S4pA+Xa6Bqci(TsFrGY$n:J\c#W&MZDZ``l?XpHlkiD$1Z6%,%=NkjlnMLQS,3h'J(%+5N;8L_p1$D.MV$BuE^1B/'2c4Ri':rq*,$<5M3-;+V-#B=DDBFCp]X5#XZQ_h>RkZ)ITT['Yd9hKam['D%T8(HMj7l;ms%3_Cp&SH]mLUXa<\TtlAfADQ#f*%k\TP_;ul4M%TBf#%pg`Z&ilVl/#C2%9lqLX@J#8e<jcXV7RXP<q@_f%/]#f3Ll0G[YR#MS+8+RFur)L/#>)9&&W-$JIph=sbXW]nH,`-&Y:pQsIamf"UXjMd4TE+FtFV>.Mi3)BOgZ+UgpJ37R#?.TBDJ0oK?YQ.j4p0ei[+>AgtTfRO=:&ZGs\Obf:QBo1/l$6';eDYK);,9u6/479>\4/,V@>8H(gS>W>VWhEOWUdq((c;fe%@`:Tq%iSSU"a^%0BAedJqXrn&Pa8l9"KpB+hIKp(ckHn=MdT)XDsOfhbq.WmBGV6q/opMmJd\WH6p52DlDq,^q9jSW(Y>'C_c?FB36/)'QDED)42:F9/+B]KrplDtqXHBs_?H1kXge:A["VhO_j+4/>U63I@L+9bKaZbP^f4OIDI_tj17CUp=W=AK#^*UWhfR=Xn9QL9An5GS>PAlT6<s'GgK;&nnajCQ-buD.Vb`=-nKINgR3!Q`#AJ@^LW9f8JnNi=qT6(MZXLW^(c!`'^T+94.5!6L,8'#ie(A;94$cMnlO).QUs_^4*e*148,,^b$4;Ht$eMgM6B)RgNJa0ho%+ncmt.uSgVF%72)8mo,ZPjB\Jb_r)m)iD?!-pCK[P/sJ\4?3o.nO[3>4dM#X'[T20c5E54o?%[a;'QH/r'7TNkC#1+Q+Z9u<MDD1M,MaMZcIpd.!&-kHZ_>G3ViHcta^`<7j>"dh/Ob#e@ZJ4.a7kS_+Ok/XFM%WF]oXgY\;bVRT-L,n^<>?"*ehR)@cJc5AO0E]M3=Qc56VS9d9:3Nj$6%_AVf[tH:\`_oX+?732I%'(%$Pk&bmVl_IAU(@`!9Pq?qAL+aA.%X65LS5m`XdN;RN=+Q.<&+'FK.+KYda:E!SW5Rc<KYT86g+"5B"=8G%H@`R:YOJL(.p=/<^g-Hrbr]7(BN+rWO6OhRn+pIn#_U>GcM@.`1g`:>,kqOPXutSQZb%g;VIh[#A<4YD5B,Z2TLgO[Qg3gi.Q@H>;`pWOTX(J"lLD".2Jqo[ZQ%XPgBOp:C*XMY\F%F4/''D$LlA%HsC*pft@MAT;]E5;eo?+/TcjFB$fR,IF]EHD>18]RGjb!]bo#nBZU`e!:_OS;9JoUZ)'KVk2&TbY1S_=OFLJNjPJr_piHt-?8J`S_rC4g!\;7'buM/?m,#cH$PqC9p(PhVO9VRX1`)gQj[S=6+$uQeRac]1Ge#!(\(pf)(o`R(IIT'rqbr/qt;m=Z"gj2D@Np'NUr5<G<WILpYL8hNGlQ,-HCURrWm8@;uXT+bVUFl@j8]WE_<p`lVg^2Be4\(!l/[%VTlJ*Q7Z=4Q.6-6ZTuAWGXu4*"*X%TG)CY9>C[jS%I9/$n`nlr"rGdM_'S*3GMX9$GR.9%05rf"-Wmh$k_V^a2S4Ak0G3Ah_?hU(rUr<p.popnRS\7Q":JR<=*N%\(\*mC<8"#XB6&+X?5,R^MOb#<!S5rZ\IW1@<LuEg6l?j[<me.Zfr8_4rqU&<YlatAa#PqrGV]^c-6+Y*Ki+E1*&P5GDRbfNVMrCn<T\!?nGB_="gq&gJrC^3?=3LMiZ&5Bfs5/sO"+X[LH6T5rYY,A*`e:NZtbPMG+fm.&-[65TaG)<ET=g$))*!KrStpo<,.tg7SO2oKN<=CZAB6W,p`ZNJ,b"t8($&i0iC*K"_@uiFSp4SmbPA/H>?qt5Am0^QE6G_'9gKK$0C(OMUp$2hcsJoJTJl_2;YHK,)S:q#ZtA<4)N^DS=D\M1[?bIX>4C8F<o?GAE;8l-n(NIHZi>OYr<"ED8V);MWIT$N2kG18l3%-pu4q\YncX-\6<$ZdH[,3"YOV(7WS)-A)e?RbSO6PTV-g:QR&'W+ag#oRd[lW5/8%Y%?G`l]i@aJrEPa#!20MlpZo#tdC=cWCJhr`X/Jd\RZ,JI.D@X1I&WO,+o"sanIDGWPZ3+j9hHF&>Zt'1+#0,X@)_*#j>:FO`-)Tr3RNK;f;r,u#[lZEqV?AQN?8$cIMdsN#fl"$\!_6R$SE,@SM]\c%mEs40nPoH846]LdFN8&7qZEO6k%'F74KgK55k+0'.6NZ3s#h9D)VnaAr(4C>h7g`Gc#uj@Mhn5Hg^\sLFNCWJ@XqlXGC/oYdPTYaWQfi^1hHpXBN%.Va(,_^O?9pX_g-LWPo(Z3N]g$'L69tg+PaeTKPi*[CLAAC2:_CG(FLJ*MKi[.OjHq^UT,dgi.E4/'D7K(rX2gWStYs-aYEAMQ-D#-,G<8WDh^V^282]P_Q)j_o!Fc^PC?ea26*[E%oL0blUe/S!U<uXNRMQs.)Z>"N!ZPGIV$mAqp#1/hSY)RlPQP.Ar]!SXg-lJRR+A2[*h)YWIRL4aI&)a(oGToNd>hCGRh:1p98>+LHLAhJ]i?g\U;\88nTDb;\>,o_"NPGR`!7^B_n3i.jX=)]J\,9q+?3gsHc^9q3nG&u>%99iR<CG^mS`$#gQfpThspkOCR7>fpgmh`gu-_h/1)eiYs)2^X5$Y9$sSCth&?S5E=q$hD1d"\H(<n>I$/>R5+Ad7\:=QDi>ekQd%L)>a:`0QsX,^L>6IV9>4?^1bp#ZY%Gd=Fbo$qU[YlH)msFJS0L_i;"2ll*LVf)?]=J%#4*6r+.t`]_:(Z4S$R'1M5E`hgP7VF3hO]^t`&)Gf_o%I,!#pKOnc,6^"kX^P;/Gju8>MU.4)fbEGn\s'rEDW^&%TW@ZO-Lr&BN.V_HO5/m+"#qhHX2=YJW<r)IiX5C*SVDONiC(UpZX:'[Z/^5q%IcZl"DM(4s.X:^DGH3U7a7;fc7PDNh3"fY>=bi6Ze^ap7nH09fgpnBRCrl+&-[n:,p&fgDo7+LE`Z&^FY-"k0#.7/1-(B9qS%"EZ-01<mq_+l^0NO'BVZqMVCf=]uq"a)[4Rg.VaciWmHKoH'Ld67Dl&7FDRQC,!LE:d&b:hJ"-Dh<EM&2%o[0p`1-P.o#Lr1J#&3[ZJY3Tc5f=I3eFB5^C?gTW^iLt/k*(G24!urVeW$(HBkMEn!d5Og%^tK_M7*,[Vl^`7V'=*<N_`/J=C(87o(9Ss#?rn4O72AVP;9L$gE]9uZGj)Bc/J5rTU/P=F6&3*RpB.iac],CoQA7A=q[=eK4cp#@.Z*K#-5<a;1U7d<$kJMR8KEC,HA#)7*0-Xp!>e_E9K69Z,?n@OD1@"RGm,dMmIhNN#9r;94SlP,bgE@dUPsWV%bcWE0>)%).:\f?k8>m8^doUIW]W##WCTR"@FAqE$RP%04.hMOCot]q>RfmR7RnJ*D4e;G/O%0-/G_fP."V1`S2ZLuCX`Ar'<$&f$Y7YA'.50M(pX%kbTS-EkI,]B,Ml>/pSQKt,R^FW#H?X*2)B_a%1KE;]70^)o]B#3Y.[_!r(-<NEH*H"Kb14c?hgG-pe5U-FU[>$[-k=F>D3IQ/>[=E>`2]U!7c;pLRGupl)%kV[Iop8\u$$fDU$!I#Zf6Ebh:R%H0^D$>S7-N'Sb14#Z2@PlRn3OYTKtsNA*H\?<UPq%#9IWeLMK7q>#`S)qPB<K_r9ci64"'F@'9fIq,[rrh&5ENH&NCagRHTm?0hLj.[A>?HdD8^?nD<Gi:tk0/m=VUkJUt,*kst*S]WPm425=\DiAr2K.I=nt]2C=j+"pL'7$Sgrdd7V58gO$/(\/87)7V8,2'ApYToMn#X*`16Pds==nD(B#aJ$Fs5VWFK,t^.CEASUVhfM^<\e=8@>P&^A@*t(.JN6iu7r/*RstB=4=$@"#D)VZhHKCN*<Z+3?A:]U-Q;O!%]e<]U/r429#AG02XO:_lR6b\B)b4g9aH/-:u-?L&oKb>^3qODF8].<>I?#UhsW=H1Z,\MprIA,:lOb>H.5P?7^%]ia.dR;<ma_`[I<3r-j-Z6HthG7.*R[L3smY)r[NrO^BrM:=/%6Z_gEa_RKR7r>hO;giCSTCY#T+F]PaUE.ZGj6D7D[<h4U*Go0-$[.D8d&Tfh7q8<^W>De>3C$^%0]5Zl@eqbIo_B/SmUH\,R6uM+&#=hfoC9@@W^@q"tEe=`]!26GD!CkMddg$9u:o[Db8P,mIK@CUm[@W"k?!LY4UEBF?c\q-<6GLIKET>Qaj%7lY5$qK:G4*.sK;VE=nP`48gq7o*?!ROqY0N>`Y5o0CDVb$U_iG9HFp\3Q4fK)0$l;W6ZNlI9HqGORRr?$/=_(ZuUr6/9E+/=P)/I@h4pV\p4J%5r'tmaQ=WgifgHI$0kF?URZ:E-O/_Zu'bYLr-ccO9J0VILF'8MShrPQf2]DRC&DO`leJ_>]AU*i^+Gj;9G!=X7d/CSce1>h.&(YmQB06L<o:S0gq?6k_:+fW^7/m"rnhHpWli6`QeED=DUAAP;g>f_+k!*fdW7CGFSkRAIh9E@U4[WZ)7E>o;Cmfj\dRM=cO!/9P5?4uA;6Ol$&>LM$ZVF-L<9H`*UY.Mt?GLJhe-E0(*.je/RUD[6p%"eB%N#6f1S"&0kg'&jc`'K"[#n`0DeKCGg5[4X!'9!L[_WG;n].iu5%:"/&a3&ou`)R2PSNF`2P,)tenK+ZGn^ra3Y&'K_oih6L"YS`-:S/WA?ZFuBZEU#s.1cc9Tg<c#&sl^aH@5so&NS*OBO(HQEsNf#G/_67ZMVP]%(%L/r*X2R'1o9ee/!-gE8_KE+>11.?DA?hJ^<;L_[23_T3o[Y?T`n+=;IdRZ#$M=NJ?@VN=e9W9'?ZKW=ud>DWJmd_@]F3&htXXSDmdt6,kuL(mOgM`5)VUfpr6ulK]CqZML6hdtCVXAq_ZfR_<-=+*SWoW4$P\>%jVl5B,Q=lKVPZ63/Y`<_-s5C)pQ8C@cF1KFn.4UJDSUi,H2^6oulp*=/H=3?]<%9=BN82"1OR#X'N40U(KB#9T=nb9<95cA[j[lG5G00<a<Q':-"JG]QIAY11nJ!eZ_;QVO2n&_Am0UZ-7?JZ_c50W_?<Wi`'P)]D[sYg.78?):MM:k9fn^`3B@dHL(]T^a'd#i":R6hofm%eo6Zl;<5gL$A@O$6&:A(FVJ<_&2-oq"<7rR'[5/>[XiU+JQ;0+;&6I&2*IdLU^5>GYp7g:X:"FIUZSg"-\YK,df^bFocQuYsLQiN<Ea0F1AFf2k1c5W<8I0E_1ZOeRdI^GWM'<PGe7+iEkJ>RqOu'O1p^F`jKc;+O&O%9C(2J^iRgbf8?p",Y:T6EObM"=JOHpYW^rsO5PE9@U<Ai-\72@.p)8kg:UhCkWlWhN"P%&Wa-G["T\kEdD>]+2)RN]^Mq2OHh]mLN%p8/eTEcJ8a=0Gl73\rb&Mn,5n%k"[lM.2]q>HBDrSCmQu+h<1B=QLhL"]cSN=0SA0Bf">$=BfMD9f70'"A$a[]bp2[I'(<lrJ+Tk<esTgMVI487^6WZ&I*MXQ$*#(s!um&lN$6O:%,*bGG;D&r[!:Zb8E8lLa<8P7HpriP!6-_K]\DV*U#BF`-J0Le)70!$QK"+`^C?,PC(?U",/6Y",p))uSS<`U;m%Xu-TZ;\u+'o)BI0Yp!k)R_u_:S8(T6kg=LS9jJ"^]*nEf!!uXf]]f1MWmu(jB;p_m7AE%$Pr[!r:@s(QnW7&U^Q.&il&qP'Ugk-guJe%0BAhP8Xa%24i-*+N7Xs)-Vp<hG3o"/A&mGMhgJ>6Nc$!`Sr>uYPlS/`oo2%WmXFK([iTqd_94ICr7"Z#KC2T=fWTMfCs\)*l9Y>J0_)t,huHPeC!%2(G^r#BSXitae0"%nZd1i4WiN:k5QC9(X$6bn!cZQp"h&(ePm^1N7M-pnH)RPcf\@GhZ%Y2\^br(hGYPH;A&h=Bm>f#gK#',HGYLn<7E+5f>IU_;ZhDX&hd3\RfgUQ0/qg%IJcuNgIei+"hYTAs<`ZZpaH9u?[C(Iu+&?4$Td1OJXH4^,#EkSlQ.3o)d`JG_gER1@at/dl'm5@(\<,4NW?WP%NB4X6iZOr=6MXh_Q\^;&8Wk@<7M7=!8Wk>j;V.cF&'+95(B~> +endstream +endobj +7 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 595 842 ] +/Resources 3 0 R +/Contents 5 0 R +>> +endobj +8 0 obj +<< /Length 430 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +Gas1Zd8%P4'RfFOgc$sMdbCqlq?SPWL'34L`/"qF%+;XG*J<gi@mDt0VTF/Q8^BQ_SrFpL(^n-015OM7_1j'dG7^REb&G]iTY_P%Ed6t'^6V)p@b3Mp.pIC=YG'9bkfCG;lKdeO=4teuYq7!m#18'%5s3>\,^=i=?rnQP=;ArG,QY0n6*@2O+_W4%$,_KSbO")_AaMagg;31GANlS)a4s2GRqPNUjG+mF;8ts/30e/BCUY]a89-JQj9Tr5Gp9"E(BrcO?d5P(hbc^t;Z;kOj.aYkWOnRgd*$9#=&:qrbc$/e<6&RP4VN9)7)`iT*DoY97.WSlG&:#d@B3F9f'^"]\Nejj?]'BAgrI.c(5].8=7sVOdpcgnptZ#[3i'LUq\%SADs"[=4_&,/*hM[gru<c]CWTD!i,L`K/?&U-5B?Rs7f~> +endstream +endobj +9 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 595 842 ] +/Resources 3 0 R +/Contents 8 0 R +>> +endobj +10 0 obj +<< /Length 2747 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +GauHNh/D(,&qBX_Tf5&`QPN.i++9':9@!hZmD[(NJSlQ?/_AQR.rP"<VZ6US,YB%s-.R?5%L*QjLbg%M3+&KTp@7/),PN$"^A#.Pn@dumlM9p>4V<i2@9u>h&e!Y]*kYj`*faGWBU8,Y/8]E-f'g6\Mdd73g.Cm@>dd@5j@u(E_#;N)r!1G4kqpXE"V3l-+51cUIc%+u9E"8Ji\MGE_o8goJ\Z0/alaq0Km3$>?mHBD`$meU;uGT;>l=3QG$#]Clq+UF0_@r$kW((H`rG]'+5*aA*stW7&5B>G-aO2A;LA*_+UjG<=\OF/&$t0>_3LOHdNBk\$#Eb'f%bX0%S2aN[a7lPLMi(jmO*[C4;?Z&Q3Y.K3Mof?=#Ou@fp4N$>i?uqcEOZu#-$mL3YQs=fr\/egWX#R]XJd$dI^!o1p0F8WKF#ml(X_3<$ON1+?kk"&0-dmkk)kNiHNR$)6R[`Zt=j)f7mHBrV=?$1fC`"PPY1:O8!2=haMH!<k$f[#X8ho]-a?'qe*ZNpXGE#_UtB.f^+Gltjs=H\UYi.-+amKVM_[>+A0V3/(\Vb2j^n(#f0r.+8rf$P\RXMa(S,^r(nX/8M4H@S_&,kGp*>,:jEo/_$6(XaLegDUZN7'.S$Ct?&LBoAa&/%R=g^:SR\PkI6:1iJn<b0hL2S5H2E>TrEY(Cq-JfSJKm[X$72h68.O0nm@sKc@U@r[]&?0+[f<lU(>Z4+W64P<h$[9\?6?oY]M`qqDi-?ibo>OP!ILT(K1iC&''Y)oo0g^>JZ+-d0M8q>ZCDh<(oY(*KJ9W9U7^gS.91J[K6"@%Y'_c@Wc;gr@toFD`%QF>9.F4AY*S&j81=C0tP/nr+'48IZlZb'MO?!<Tf/:o*SO!'2d>#-km`/>n_"oEJV51*T3:[u?0O>/u4nRD$22S$^tIeS_MK6.1S!,PiEe43eWZY#4l53NBNno(USLJd>sNF(&/T(08O%,VQ]"eQO@t7M>+p^L:h4$^lKUq9lM/SQ1K6[U0Sc4N[^e_kl)UV]Ot'-4YTSmf$^a%ORPU;XPmf*V+4[.?Nkd!6]jRU^!kR9V$SC)AVJn]:h=f6K:8,cN46m!$K>UWQ7#Xb[/HiF":>`W#2$0C\VM'oQHoqJt?JZEtK&Kj6=*<Jn69"13GRt.a-:M'blcAarMN&B2F\d9<^\Q6hm(@@`\U$Kl!2m%1=)06uYZcRpe%=K,@emU&kg8*%4:EgqHtoU[*'KoFX_#^rW2+WmYLeN:>[[/BMgbL:1`7s$]VuF8$d"FA#AuZr#)Ng`WYa"!_:5"HJeO]6q!^dBr^="ul;Jn-#7LkB[8sH"dc->C)44!*d<ITss6G"?7$c;J>I"*\9Mq_-rX>!fgX0\IO4&"pFMf\H)ZNf5mglXd8n<Y$itDl^NkJGGHh1:UUGtLY8I#"@[N$4kCRU9Fo)Cg@`*KU4*Ia=T7VRE@fg)QYf`p@'C=WX?/G7kms(R&&KFZBiF3>W\[I;BZ+cH%Y6la+p&>Z1FSo?)@=@0BHRdS"H+I'&DJ=;ktm/1W_[`DN]Cd\-h+nhRuT#s[sW4Nl)P.,#,]$/T^N\Mkk.GR`_2a02cGGi*4?Dgk.l+VO!mnqed"KBYG5-j#;ODqLNB/ak%#(,(-<T#>V,+,Q(l&`Vc'N<?g>&r+5nSDI"a/]]oqHEXNW"6.[,D;;G[DW:Xfd_hbtF4\rrOAR+>QESqq=BOTi4E>T&TtqV)?PPL8W*h:R\cAh9-g4kp>'=1cYggiXWZAb3t.>Jm^!iUIkKf$7`LaFhiM%R#*!@HGd<Ft.\O1Ybp>p?K0...$[`CJGX'\@S@EH0ptAbCtqP+[0@:#MECgE*r7(P5DmKeF'V0r"Xgu6;2*bpM&IE430<I<S#r!*HN6j"%1Zh9bg2bW=DI?MaU<l*NQ5=6qnb1])N6>0B42U-VPXZ/O80SgIE7^^pJXJ?0:-78_eMYQG?^#ls2^[=*QHkBM@Bd18`aJZu$$&_PjZ)C"6H-Eq%K83N]=Z'b/u-0dnH))Qm<-hUL$9R:^ha0C^%ZF:>"&`n%P"EPM)aW0"4u#>8bo"NWi1lHC'2J^Ih?cU@gC+aoA!N=cE;EW!7S^7,u%0U&3XB,\[@"o!]jZ!M"rfUSr-bDOqjoG,)KSA='q+0W]o7q[bZB%>:o3\+r<\R8ON=hma"johc4(@(e1JnV^u8";ah+hFkP6aM?R\rpN_F;XUnXd6mtr:)0Y<!_7X@jO(S8p07VAgREXn.d!C>P;p570KqQ/qFrIdjauk5u+N_A9P&G2jnE]oo@eqV(F9IRb4j+&O5fLnT2K6%e\B!4&onE(8oO@'?QK,Wh_f#/^$[0Y0)KIU=H6bk/C;_%;YUa,oAX$mAT9NI86Fb$Ec0(U?>D`HL6UUD\J-D8EN@U:1Eh0LVCkJg*)X(fMt#n\h@>I8%K=3iCdIW$V/lHAhaY[ag11X6lAG<WDeqWU\S7""GKT0%[aBb/-c^%)HVKhK.ER%]4I?_YkTa<*Su[aheT%Mfee::"/epe"$-5P5ab*fHu+fe8.Vf2PD@(hYno)<B];Gm(eo^N*A26t%b1BK`_XgP(V<aG5(UrYOgr_TbJ-G*]fL09DW&)jRReD\459Vr7&W%p:8:V/US1Hbet"i-)h13DW*4"6"\l9!@0M1-*NRfU>T-@SH>9$eQ1[jYUH:]b^/rX+OZjZ&"*mZN[5!`l8&%4^KJ2'I<LY3PrmfsfX5`.d&j@%bnalWRG7VXYp4!++Ga5u~> +endstream +endobj +11 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 595 842 ] +/Resources 3 0 R +/Contents 10 0 R +>> +endobj +12 0 obj +<< /Length 3758 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +Gau0FlYkP!&c_:66HBs)J@4A(neq(G88q:m_X60u^*5hu&%"_b`)38GLLL5W*HGLC/!6!uB_'!.+#uEh]<h*4I_<:;pF09bc@X$kjs!ni?LUA`s7mk^R,E@SaFjkf0(-0+Ip[WVPe4D_V2,a"7UZuaY1<cQpN?L8QOO+"or]m8Vo")`S]CZ\j?%k,[bU;OE`I;W1?+nlbJ#L-ZH^"e5+u#R?L@<hJLCJ#h#/8US_8:X3JSd^Ng*:bqtms2=f1DE.1Vce.*qil_&h:"Ubl\'S/mm%N!#pOibD]dQ?j7_R78_-L."Fg)obU_qGn@@HeqdZMK2g[fOqmIHT`u]b!9@%^etn!"ZAeV<X5R0@8")c9BAJ61(5S*p.O.k@kF-qf28X)Xip23YiiaYIGXafZp&E_2>q9oMA&U+9jW"^[d^,s_+[m80t$XYNdoTN)<Lo7qeD[;OX$\=AGiR=a8oZJEPoHZooY0]N+HW!c]quhT$+Q0A$1ahfhpSK^-KQeQNuiLR1Kass+nA_Pi=B$R>-VZ&PQB/&L&,%e]`(S5NPg*i1;@]Ni!^S]\O*F^FD0RmQ[^l8o+<oQXe:h6,l#-K$Dc<i6j_u>BF02NE5C.Xm0Na^#CR3;n_`RN/LLaFrWKNn?K-G#>Q]obCYZldm:cD:<6H20ZnFWRZa^k_]8(2Q[;Q9h2E#2i(0"VU=rZ@@gR$hWE4K$D=WL>0Vuu^8&SK#T'L^3ZTc4AX`>LsIe@kk\)trq.ibG3#somT[kEcchQ4HQg\o@GH'3ai&9O9lD]XgSB$N^G/;b_7b$VN446acG*:f=q`IL\O71c[KoB*GfDe?A=6F)D;Pbmg2KKumOAP>+uFgFq8`fd/^cS_8!iQ_Dqq[pu4"[&VZT%e!t2aYkbb)GmVY0n&sK,mg%f?q3Vl`",_)4HLiZr"J07g/"a%R%-+V^bg(hV@qS_E);F),FlbZOG;;SWJU3h*"UV_U6:V,M[Lekg;@M7(WcNa>">sOEShR6&lhVqNPB`)3e>Th7[I8'QBc\(d.T`*=O\=Qj%s(eMo9V6o*!LZ@2e+.3"0<KEP(hS@HOs'=WL4ig-rHg^QkImDLT)Yd`c2]Ftg0?p%*H/<(>#2oWM15uKdcNhS4<.2R(/lNdC=N3\g^<fWUNU_[oCi/i1)hVlJn4,!HT15>?@#jHPp9GS]L$'-:JLrHSN7,JY!74'ajAO:[H7mZ\r:ES[qn2.coeF@Q93aU9/3!pbo6jig'ZomJZF?UV^S0d=2?i-RL[6t=4nQ\>9pA[fL#6XQ[giQp^PJ]M4qU*JYTYs`3N"PrB2\7Cp3-<g7+5VP4%s@1nYM]9QkIIn@BIP]$5sDCsjuKF&&8;[)h"F`L/iP*C^mTN>OG0lD:!DYi`9r1keH,rE0D<ZNEWppgKPoMl_Mj+,/`rpJ>-PC"0s_P5#Ne'721RaQQ?6](_naaL6->(H08.IS[BKG8KZo>]4iirnERC)j7R!$I$l&f6qmf:?,R/e'k"isR-o(LV@qBJD^nMdN/N?Y57H`,FS;&pNl!\.Mb)m#@8T,rS][Ni8%*j:(CF&Rn$u8lePZWK:DG-?mclapTpEai_QrPFK@j%1YJ70-R?UDsLFA-t;bgHLF/.IH\dU:WW%A:toO=u:0#t<+e%cEhQ<NdP+fk)[bOA>dtH,6`!rWq*h`X)"djUN"3-Z+iq7.EAdTRDTa6b!Mt2g'nTHqXs$WL*2tb'=u)BG]j;DV!I)`oPGCY#kS+ON)>?Ed.'P!XdX,%HT923.j>N(Q7EqE=Dj;f>Rn1\;W5b_\*^iHo1TuSh56-38dN9Ge!PAioAk]fFrlG3s#M#c57[(!t;;%W+uXXTrq3!SA?:9O@Y;nNt5W1T_XYpi8#ae1!,g9j+.r]1X9KA7K9I$K'l5L^qYU!bK[10^j&q4R&I?E>UYWo.sJrOjOLjd6cfu94"s"KWYKctY5I5ZoF)0.bcVqr6I<=g;deUIg6F>12K)PM/qtF)aU6Se/Q@"U;EZo1].WrXAhFd4?S,b9[tPUkS%9@8K?8^=h^&s>b'/.(d[E^>d+](<$#S[U*N7k3b#UG-/8@PJ!?1(!`eq;UkVM7L%"43lRg3`/Yk-\0i&@!K.^KdkpW)*nN$QTjWYqF`g(.\qCpSJ52GO_W`-p$L$eu$.WPgdrE^SR<httS0\$g9EIONallTRnr%+tqW_1/t(RV83j1l!O3=D3V5J;9l$b8o!G?.aZjLL)ZmTc+UQ$"bQ1U)$?Tade'6hQ=td]o1=Ih7MR^4S%pMh7%OUQ"O4.8AR@lg;3`>P5t%)/u'Bs<#L4]NBiB#)O7'-$Y8c<\k%&7HV3QuM?@t4j-l^Wr:J)ulCQFR]@/nT#Mg*7-MRAINOMBt/70Y7P@d88K:Qj%*LJNSQi_?YDod7E'S>%T5&hRDHM6Q1Gs`WJL2m_^HNU9eP)lC1[jiJD'8L'tDn#FteNTO!!>Ft!ED5!Je9,F]FFeh:M8X^Z9Z!6>hK7nc7jpm&]"j1i(MF0&q6Qs^%Bi'Uc)+Tc4[R@ueO\342<XD%8uSR<T0O(fB!-'dNFo?XB?*H@g>1AaUM&Y`qmI>.L2Lk5(q,=iq,Du7#f._&84r_hZD8j1l3KnRd.bhg@Hk#jF4D2=9:=0^eOhoP0>b7)j750mFG:e%2kJh=?P)H'&*)$WpK)D_&!iVP_OHCbH7&K%6\0$Dnl_4ic[nO0qmWa]H2`Rc`A\s374a=&B0q7VI,j.*_1ZAN@khmTOC,;PB648UV4h=<rB1I=oVpDS"$J@4*>TJul12LuYNjrDBM;4QiT<nN!]Z?'<.29.!&1fdX%p>8s6,lb$D9/7g(@+,$dE.j'.>UrFE0cc&n4@\]tIQtqUp3c"Y9mpL1<IlF7np^l7t$EhHN1GJd`RM?!pA_fo%BaObi/kCQlc<+jVkr9HEr.F350;h9>_ek^N"4Wp_4,4Kn%!L]e&6Dh,5Uf&K3l=9diN2RbjURe9`[69UdV<6WJHRY8/(c_^T$Q2<E#6.;"5;hh81_>+K%O:T#eO+gH1\#(^\aR8VQ!oB*.cc@Za'pZOg`.F!g7g-EVI8]5i)_ZD&*0RJh"4MrlOM1n+1qj.$TJ(ihH&qSo_,!ZPWKo-39C'5ncY[dB=dGkJ:UNNOoRf0NQ7.3&j!ek/&AiHiD,8$90(h`1*oDl0@GDd-nZ=V__A/dP4Z7lB?_-GKB`+;J?@/l_bWF89rq,emKTs>"[-'nLbVPJBUS-SWFDSn@L<)>_@VFHQ+\3j,%[5XC/hKIY,^Nkp%Mli''#>h],5eK+#8A?oC(@'D%RMFeVXkKOj1&ZV^_I:A<aA2W9@%';Bt`a*%;"o:0EDePjq@lQ=@5EB:TL7O#'NLdR`U!YJY7VqM>>Cr"&b*_a;JD6!b@D(qW!M7R04SW.g%&0WUNC(&Q/g\0Ett:e<9O+#`G2YO"`B3WJiXM,6SLKCCH8!m"spC"qpK^Qk",q9;ta<DtJ;lOfG1O"&s5]1gM](W*7nC7Yb[#RBhW"Aq=5GF)GXYo$=q@46OebR1J*d(.kO[3KZ"]/F[9DW]S&%9:dD=FZ9diI+BTAfJF@0+d40+Mg;[3D(jaohX\W][:tW@MtA\XKRn[X[Q2c!f3<U_=8C'A'7Q98TmfW]o/\XZDPO]iei.E^^3uXqO.dm8^a10%8G2gbh.)/-]'KtkQJ9:^ro;nX8;mtMX]M95lY&u,!V]IQ%h?*\+&K^hl$i1'=k]4V^gm!_dc"QNH6+*ddkZa]*hb.E_jA]YBXe!L.ct==~> +endstream +endobj +13 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 595 842 ] +/Resources 3 0 R +/Contents 12 0 R +>> +endobj +14 0 obj +<< /Length 2533 /Filter [ /ASCII85Decode /FlateDecode ] + >> +stream +GauGbfl#h>o%dZH2qu-P9sWG7p2),i#IEo/Z=@ea+NaeAC>"8c-p3IA^Y`e3>HDRsP_B8B5F>_e*F3lS5!<3-h2@9U0mE5r^N)9Z=5LrN5Au`2bkJbE`$=F9Gk4mPrj[6PS+a$lhJO>$$cYOTMTnk(SbIF'P08R]GLf9r/Jm7eD)r#iXT_7BMg4'BWV+Lpq:L+gTY@.5i09PCdd7r5Hdh(Z?d'deM/l/A<_6#Z>9:;?5-Fc80Cga?D-h'tnS$D+c(CK'Iiajr$g*&H,P]258h]buC*;R`9EZOFN&IST<gRB$m3JIb#>:6Ec!*fdB`XNrTWUke<iOj/H$WIme<%Ws?s_r#Se`"g.sh3n?Omk?\^!ChorBCp>?Z08#-R':0=.f_Ceq(Xj2:moKi24%(G<5n9mohsC=4`<.g-nU12HFjJ",QF::>##5fGG^$iiFdRP7^;`BjC6#)uAihY5JT.#-uEh;.[^(Q8B0/h'+&-N5?N,3C5oGY+M2b5Qi(.g#aeQIi?,qteujPs4W_ZgfBdhkU)oQc7mu@1Y0]nqk,:,l">k%s?@C;@^^qd'a&)BsTl6(Gk&3o7VS.\>P2`4GY%F=N"P4:LlXcYSDNKc1^;@0q!%Rh,&Mi=dH8'3a33FkK+]XHV<$5UW=(G\*ekgB*++@JH/%q`)n?*,1s)kmhpgAN#k+_Ae?`1dSZjt/$)[3'm`'r8)O&;pW2)F*"'[ij0>_ec3f9E?t0s^m1:HGKcA$4DUTj8=M#-7LSi@I^;LZarqPuijqqM8[LFYN+)TCS=t@>'I1?9eiQ:Mp>b`$j=SH0(KF6M%Gu6nbn*@lK4FnTZ`("1u"'gL3oDEh?E$#8Yf7S7>F-/#HLH(U+0?$9S44J,:J&dG_ag3"82Tth?]oHN3S?Ds35_,je^LQHZ?.T<3ktC[E0dFu3RuE.Ws'b^OBU/*)/?W`P\a.i@`JPg%PrWY#8#[bUO_:aDfS`,4ZmaH&C8u?C5ND!MC%El/iQPTD@[dkP#,b0Rp\Y2I6g_tBH$aVbm6=;-Q`_mdEL2*'h;3T_ZAKU*0YYm`(rp@AX:Vn#EslL.$D)d"53(TY6U33o8O=3FI,:Xi$i6-(W7K4TrYNF.m?d4<47SL]#U&fY(Bt)[ESa_j!"+EJ753:e&:,m`I#EdOQ599+ZEa"r/Co\C,Y%3U'O.%n5bT0uktV_&K*$sq*&U+)9,+c]a0?@EYDJespi_WZ[>WEeoT53G6$mFKBu>;/8^1R@ehI'Yr;FjOW36]jBDpJAckM$Jk#L.nI:d]h83lCDo!-GE:&mTD6b9kUq_4%oYBlhegk\mf1C515,4mH.%[<WtOj7BpREm&QKh#"JAlWX)->l.TDZ]34FTP\D1.&_s7A9LO@A^AB)pFim-OUN*/!kVr$lbV8F\U]X!RMZJ`NFa_RI6GT\STYF\7!FT8I=E:8rujp$jM"f'7H.3Em7H*Y[%f<)XECb$-!^o`RS\7s+2t3jB/bGc!OIfe^"kCg3:&RUgd=9oZ!so-A]A'5]9PH*d_`4fi]0RfXiBL\1j;qAsAa@FP;dT)fDgXB*4B2[^18,[!Pf>=#^G.Fl1;hSKkVmRP6%.g.%UV@Y_c1SLG-(Q!=InP$FHV0TL2k)S'N`Q5H5Z!2p5&R[:g3#P0(97+]%CQnM]E%Z)%JY]fpDADof_PtY#sa#Xj$I?7XX8IK/,ok<'*'ej4,2Psd\WqBb0USRjLg#o?@i,0P2ZXZH_lc()&-9bSgU%8g@kcBDI"[`M$Jdaqsc6c'nBKON%R*6-$BpH1$\(.naOggkb"V"Z9?#n:tm)u!8N/ifBKuO.r"6[ii&!MqC3Pf]Ach.%MpF+&75!KU``PZtdo&/m#eIW-lPR*.[gcg\:(?elZ28l;dnMK!S78r5'5$-rn1p9).2G5i"\NjN]<Rh'LUE&QRZI,/ABJrN/Zk&jQ9[RVB0dUH<f9GV(qC77lLA%+DV8Qa@qY>TZ;4qF21rg4KkN*]d+i/ET5Y-/[0="\al^36b?r;nk00*%B:056eFh1Xt?J;fOZ>J''MNA@`5FgIVEOEs/.q;=T`mm8&mMe9lXR)5M"Q8SR5r-#`R_8Vgj2;F@='$,N24)lVI`,B.>l"s0")Z]7#=3tg?:j+\V1:Ba:-dY!k0);?a34p$b4H]Y83_)s@cK%/KJ-f%8H/#r@A`?@9N?]Y)eJOp!GBf*o*h40OA/g&qEIRMJ2D=og#iNiON!K"c)9S(\eDG+Upj45Z\/\_op7<B+$Zkb6p`R>fiPhKm$Xt(SAUR57ioX\H`9Y`=4GPV,hfjSs*gl9C5'-IIbM3/Ci9dCT:`:c\cP>-bUX$OLZ;,6WkFa8U*sOqFE1N0Fn_a)2P9<9Ip[V%5<t!nfWm@[$a:&4J=?g!np*>--/%Xo4*`HPfg"UEf#<ki"$7+[1s1kdcc#EAQNb+WCGXjmi_thd,ht8"hR/ZE6%f"lr*R[e.Is2o;]Vjhd:Do()J]C:ZB&f_3RabdU@%/'4Noq;4W\-_;u/UJinfNFlNpNg5CWM#LogP>.6Dcl~> +endstream +endobj +15 0 obj +<< /Type /Page +/Parent 1 0 R +/MediaBox [ 0 0 595 842 ] +/Resources 3 0 R +/Contents 14 0 R +>> +endobj +18 0 obj +<< + /Title (\376\377\0\61\0\56\0\240\0\40\0\117\0\142\0\152\0\145\0\164) + /Parent 16 0 R + /Next 20 0 R + /A 17 0 R +>> endobj +20 0 obj +<< + /Title (\376\377\0\62\0\56\0\240\0\40\0\102\0\145\0\163\0\157\0\151\0\156\0\163) + /Parent 16 0 R + /First 22 0 R + /Last 28 0 R + /Prev 18 0 R + /Count -4 + /A 19 0 R +>> endobj +22 0 obj +<< + /Title (\376\377\0\62\0\56\0\61\0\56\0\240\0\40\0\101\0\160\0\145\0\162\0\347\0\165\0\40\0\147\0\351\0\156\0\351\0\162\0\141\0\154) + /Parent 20 0 R + /Next 24 0 R + /A 21 0 R +>> endobj +24 0 obj +<< + /Title (\376\377\0\62\0\56\0\62\0\56\0\240\0\40\0\111\0\156\0\144\0\151\0\143\0\141\0\164\0\151\0\157\0\156\0\40\0\144\0\145\0\40\0\154\0\141\0\40\0\146\0\145\0\165\0\151\0\154\0\154\0\145\0\40\0\144\0\145\0\40\0\163\0\164\0\171\0\154\0\145\0\40\0\340\0\40\0\165\0\164\0\151\0\154\0\151\0\163\0\145\0\162) + /Parent 20 0 R + /Prev 22 0 R + /Next 26 0 R + /A 23 0 R +>> endobj +26 0 obj +<< + /Title (\376\377\0\62\0\56\0\63\0\56\0\240\0\40\0\111\0\156\0\144\0\151\0\143\0\141\0\164\0\151\0\157\0\156\0\40\0\144\0\165\0\40\0\146\0\157\0\162\0\155\0\141\0\164\0\40\0\144\0\145\0\40\0\163\0\157\0\162\0\164\0\151\0\145) + /Parent 20 0 R + /Prev 24 0 R + /Next 28 0 R + /A 25 0 R +>> endobj +28 0 obj +<< + /Title (\376\377\0\62\0\56\0\64\0\56\0\240\0\40\0\125\0\164\0\151\0\154\0\151\0\164\0\141\0\151\0\162\0\145\0\40\0\145\0\156\0\40\0\154\0\151\0\147\0\156\0\145\0\40\0\144\0\145\0\40\0\143\0\157\0\155\0\155\0\141\0\156\0\144\0\145) + /Parent 20 0 R + /Prev 26 0 R + /A 27 0 R +>> endobj +29 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F3 +/BaseFont /Helvetica-Bold +/Encoding /WinAnsiEncoding >> +endobj +30 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F1 +/BaseFont /Helvetica +/Encoding /WinAnsiEncoding >> +endobj +31 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F9 +/BaseFont /Courier +/Encoding /WinAnsiEncoding >> +endobj +32 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F7 +/BaseFont /Times-Bold +/Encoding /WinAnsiEncoding >> +endobj +33 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F6 +/BaseFont /Times-Italic +/Encoding /WinAnsiEncoding >> +endobj +34 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F5 +/BaseFont /Times-Roman +/Encoding /WinAnsiEncoding >> +endobj +35 0 obj +<< /Type /Font +/Subtype /Type1 +/Name /F11 +/BaseFont /Courier-Bold +/Encoding /WinAnsiEncoding >> +endobj +1 0 obj +<< /Type /Pages +/Count 5 +/Kids [7 0 R 9 0 R 11 0 R 13 0 R 15 0 R ] >> +endobj +2 0 obj +<< /Type /Catalog +/Pages 1 0 R + /Outlines 16 0 R + /PageMode /UseOutlines + >> +endobj +3 0 obj +<< +/Font << /F3 29 0 R /F1 30 0 R /F9 31 0 R /F7 32 0 R /F6 33 0 R /F5 34 0 R /F11 35 0 R >> +/ProcSet [ /PDF /ImageC /Text ] /XObject <</Im1 6 0 R + >> +>> +endobj +16 0 obj +<< + /First 18 0 R + /Last 20 0 R +>> endobj +17 0 obj +<< +/S /GoTo +/D [11 0 R /XYZ 51.692 679.701 null] +>> +endobj +19 0 obj +<< +/S /GoTo +/D [11 0 R /XYZ 51.692 592.376 null] +>> +endobj +21 0 obj +<< +/S /GoTo +/D [11 0 R /XYZ 51.692 544.751 null] +>> +endobj +23 0 obj +<< +/S /GoTo +/D [11 0 R /XYZ 51.692 101.551 null] +>> +endobj +25 0 obj +<< +/S /GoTo +/D [13 0 R /XYZ 51.692 327.769 null] +>> +endobj +27 0 obj +<< +/S /GoTo +/D [15 0 R /XYZ 51.692 693.551 null] +>> +endobj +xref +0 36 +0000000000 65535 f +0000035440 00000 n +0000035525 00000 n +0000035617 00000 n +0000000015 00000 n +0000000071 00000 n +0000000782 00000 n +0000022801 00000 n +0000022907 00000 n +0000023428 00000 n +0000023534 00000 n +0000026374 00000 n +0000026482 00000 n +0000030333 00000 n +0000030441 00000 n +0000033067 00000 n +0000035790 00000 n +0000035841 00000 n +0000033175 00000 n +0000035909 00000 n +0000033308 00000 n +0000035977 00000 n +0000033493 00000 n +0000036045 00000 n +0000033689 00000 n +0000036113 00000 n +0000034073 00000 n +0000036181 00000 n +0000034376 00000 n +0000034671 00000 n +0000034784 00000 n +0000034892 00000 n +0000034998 00000 n +0000035107 00000 n +0000035218 00000 n +0000035328 00000 n +trailer +<< +/Size 36 +/Root 2 0 R +/Info 4 0 R +>> +startxref +36249 +%%EOF
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/user_manual.txt Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,146 @@ +Manuel utilisateur +================== + +:Author: Sylvain Thénault +:Organization: Logilab +:Version: $Revision: 1.7 $ +:Date: $Date: 2005-03-29 14:24:04 $ +:Abstract: + Logilab documentation's tools user manual. + + +py2dbk +------ + +Description +``````````` +Transform a Python_ module into a Docbook_ document to get it nicely +formated (and usually to include it from another Docbook document). + +Synopsis +```````` +:: + + USAGE: py2dbk [OPTIONS] <input.py>... + + OPTIONS: + -h / --help + display this help message and exit + + -r / --root "rootstring" + insert "rootstring" as root + + -f / --format <OUTPUT_FORMAT> + set output format. Default to docbook. + Available formats are docbook, extended-docbook. + + -s / --stdout + write results to standard output + +Example +``````` +:: + + py2dbk --format extended-docbook myfile.py + +This example should produce a **myfile.xml** file containing the Python +source code from *myfile.py* formatted as a XML Docbook document. The +extended-docbook format will use special roles that should be handled +by specifics FO (PDF) or CSS (HTML) stylesheets. + + + +xml2dbk +------- + +Description +``````````` +Transform any XML file into a Docbook_ or HTML document to get it nicely +formated (and usually to include it from another Docbook document). + +Synopsis +```````` +:: + + USAGE: xml2dbk [OPTIONS] <input.xml>... + + OPTIONS: + -h / --help + display this help message and exit + + -o / --output <OUTPUT_FILE> + write results in file <OUTPUT_FILE>. + -s / --stdout + write results to standard output. + -e / --encoding iso-8859-1 + specify encoding to use in outputs. + + -n / --no-head + do not insert output headers. + + -f / --format <OUTPUT_FORMAT> + set output format. Default to docbook. + Available formats are docbook, extended-docbook, html. + +Example +``````` +:: + + xml2dbk --format extended-docbook myfile.xml + +This example should produce a **myfile_dcbk.xml** file containing the +original XML document from *myfile.xml* formatted as a XML Docbook +document. The extended-docbook format will use special roles that +should be handled by specifics FO (PDF) or CSS (HTML) stylesheets. + + + +mkdoc +----- + +Description +``````````` +Transform ReST_ (Restructured Text) or Docbook_ files to html ou +pdf. You will need some external stylesheets not included in this +package to get the Docbook_ to HTML or PDF transformation done. + +Available format depends on the installed transformation. FIXME: write +doc about this... + +Synopsis +```````` +:: + + USAGE: mkdoc [OPTIONS] <input file>... + + OPTIONS: + -h / --help + display this help message and exit + + -f / --format <OUTPUT_FORMAT> + set output format. Default to html. + Available formats are docbook, html, multi_html, pdf, pdf_ao, pdf_iup, pdf_manual, pdf_psyc, site_html. + + -n / --noverif + doesn't verify XML correctness. + -k / --keep-tmp + doesn't remove temporary directory where transforms are done. + + -p / --parameter <NAME>:<VALUE> + sets the <NAME> stylesheet parameter to <VALUE>. You may set this option + multiple times. Parameters are given to the xslt processor. + +Example +``````` +:: + + mkdoc --format pdf myfile.rst unautrefichier.xml + +This example should produce **myfile.pdf** and **anotherfile.pdf** +files containing each original document (one in ReST and the other in +Docbook) formatted as a PDF file. + + +.. _ReST: http://docutils.sourceforge.net/rst.html +.. _Docbook: http://www.docbook.org +.. _Python: http://www.python.org \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/editor.py Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,48 @@ +""" +Main script to launch editor's IHM (depends on PyGantt) +USAGE: python editor.py path/to/taskeditor.glade + +(Note: taskeditor.glade is part of Pygantt) +""" + +__revision__ = "$Id: editor.py,v 1.4 2004-11-02 07:50:52 adim Exp $" + +import locale, gettext +import pygtk +pygtk.require("2.0") +import gtk +import gtk.glade + +def run(glade_file): + + + import sys + if '-h' in sys.argv or '--help' in sys.argv : + print __doc__ + sys.exit(0) + APP = 'task_editor' + DIR = 'ihm/i18n' + # GLADE_FILE = 'ihm/taskeditor.glade' + + from logilab.pygantt.ihm.taskeditor import TaskEditor, \ + TaskEditorController + + + gettext.bindtextdomain (APP, DIR) + gettext.textdomain (APP) + gettext.install (APP, DIR, unicode=1) + + gtk.glade.bindtextdomain (APP, DIR) + gtk.glade.textdomain (APP) + + + editor = TaskEditor(glade_file) + ctrl = TaskEditorController(editor) + editor.set_controller(ctrl) + editor.show() + + gtk.main() + +import sys +if __name__ == '__main__': + run(sys.argv[1])
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/examples/mkdocrc Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,18 @@ +# sample configuration file for mkdoc +# +# Copyright (c) 2000-2003 LOGILAB S.A. (Paris, FRANCE). +# http://www.logilab.fr/ -- mailto:contact@logilab.fr + +[MAIN] + +# default target +target=html + +# path of the fop executable +fop=/usr/bin/fop + +# path of the xsltproc executable +xsltproc=/usr/bin/xsltproc + +# directory where logilab's stylesheets are located +xsltroot=/home/logilab/lib/xslt/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mkview.py Wed Apr 26 10:48:09 2006 +0000 @@ -0,0 +1,249 @@ +#!/usr/bin/env python2.2 +# Copyright (c) 2000-2002 LOGILAB S.A. (Paris, FRANCE). +# http://www.logilab.fr/ -- mailto:contact@logilab.fr +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +"""USAGE: mkview [OPTIONS] <input.xml> [output_file.xml] + + Will create a table in which the project's tasks are listed with all + the main informations (duration, cost, resources) + If output_file is omitted, it will be automatically generated + +OPTIONS: + --h / -help + display this help message and exit. + --verbose + Will output a lot of messages to stdout. + + --format=<OUPUT_FORMAT> + set output format. Default to docbook. + Available formats are docbook, csv, html. + Defaults to docbook. + + --group-class=<group_class> + Will process only tasks which match this group-class + (This option can be combined with --group-name). + --group-name=<group_name> + Will process only tasks which match this group-name + (This option can be combined with --group-class). + + --dump-groups=<groups_table.xxx> + Creates a table with tasks in rows, classes in columns + and the list of class-groups in the table body. + --dump-vcg=<file.vcg> + Will dump a vcg file which will contain the task dependencies. + --dump-tasks=<a_file.xxx> + Will dump tasks information. If --group-class and / or --group-name + are specified, then only tasks matching these groups will be processed. + The file a_file.xml will be used for the output. + + --resources-columns=(on|off) + Add / remove resources columns in the tasks-table. + Default is 'off'. +""" + +import sys +import getopt + +__revision__ = '$Id: mkview.py,v 1.13 2004-10-31 02:18:06 nico Exp $' + + +def build_filename(base, group_name, group_class): + """Returns a filename for the tasks table + """ + + table_filename = base + if group_name : + if group_class : + table_filename = "%s_%s_%s" % (base, group_name,group_class) + else: + table_filename = "%s_%s" % (base,group_name) + else: + if group_class : + table_filename = "%s_%s" % (base,group_class) + + return table_filename + +def run(*args): + # Long options list + l_opt = ['group-class=', 'group-name=', 'format=', + 'dump-vcg=', 'dump-tasks=', + 'resources-columns=', + 'dump-groups=', 'help', 'verbose'] + try: + (optlist,args) = getopt.getopt(args, 'o:hv', l_opt) + except getopt.GetoptError, e : + print e + print __doc__ + sys.exit(1) + + group_class = None + group_name = None + format = "docbook" + vcg_filename = None + tasks_file = None + verbose = 0 + check_integrity = 0 + list_ref = 0 + group_table_name = None + resource_cols = False + output_file = None + + ## Browse command line + for opt, val in optlist: + + if opt == '--group-class': + group_class = val + elif opt == '--group-name': +